①可以使用this关键字引用成员变量。
②可以引用成员方法或者构造方法。
在类中的某个构造方法中,可以使用this关键字去调用另一个构造方法。
格式:(不需要去使用this+.)
this("aa",22,"男")
用来区分成员变量和局部变量。
可以修饰类的成员变量,成员方法,代码块,内部类。
静态成员不依赖于类的实例,被类的所有实例共享,被static修饰的成员变量不用通过对象来访问,只要类被加载,静态成员就会被类加载创建。
静态成员的调用要通过类名.静态变量,静态成员是类没有关系的。
①随着类的加载而加载
②优先于对象存在
③修饰的成员被所有对象共享
④可以不创建对象,直接通过类名调用静态成员
注意:一般情况下将所有对象中所相同的变量设置为静态的。
与类中属性无关/没有用到任何非静态成员变量 的方法可以设置为静态方法。
在静态方法中,只能去调用静态的成员变量。
this是有关于类的,静态方法是不能够使用this关键字的。
1.代码块就是在类中声明一个没有名字的代码块。{ //符合语法的任何Java语句 }
2.代码块分为:①实例代码块:在每次创建对象时自动调用。
②静态代码块:因为是静态的,所以在类被加载的时候静态代码块会自动执行。 运行类中的main方法,访问类中的成员变量,静态成员方法,创 建类的对象时就会自动执行。
格式:static{ //符合语法的任何Java语句 }
3.代码块可以有多个。
eg:
public class dmk {
static int number=0;
{
System.out.println("代码块1");
}
{
System.out.println("代码块2");
}
static{
System.out.println("静态代码块1");
}
static{
System.out.println("静态代码块2");
}
}
public class dmkTest {
public static void main(String[] args) {
int number = dmk.number;
System.out.println(number);
dmk d1=new dmk();
dmk d2=new dmk();
}
}
运行结果为:
静态代码块1
静态代码块2
0
代码块1
代码块2
代码块1
代码块2
在编写Java程序时,随着程序架构越来越大,类的个数也越来越多,这时就会发现管理程序很麻烦,而且会出现同名类。
所以,为了解决上述问题,Java就引入了包(package)机制,提供了类的多层命名空间,用于解决类的命名冲突、类管理等问题。
使用package关键字修饰包。
在包名中,可以通过 . 去区分包的等级。
命名规范:一般是小写,目前至少要有三级包
第一级:指该项目的类型。eg:com,org,gov,deu等
第二级:指公司所开发或者运行的公司名称。eg:baidu,oracle,sun,huawei等
第三级:指项目的名称。eg:oa,cms,erp等
第四级:指项目模块的名称。eg:bean,action,exception
①按照不同功能管理类
②避免类重名
③控制访问权限
注意:在一个类中,使用了另一个包中的类,就必须通过import去导包。
使用本包中的类以及java.long包中的类是不需要导包的。
如果import导进来的包中都有Car()构造方法,想要去new import没有导进来的包中的对象时,必须去使用全类名进行new对象。
全类名=包名+类名。
1.public:公共权限,可以修饰类,成员变量,成员方法,内部类。
2.protected:受保护权限,在其他包中无法调用,可以在本包的其他类中调用。注意:protected 还可以在其他包的子类中被调用。
3.(default):默认权限 在其他包中无法调用,可以在本包的其他类中调用。
4.private:私有权限 在本包的其它类中就无法访问,只能在本类中被调用。