static
静态变量(类变量)与实例变量(非静态变量)的区别
用static修饰的成员变量叫做类变量(静态变量),不用static修饰的叫做实例变量。
用static修饰的方法叫做类 方法(静态方法),其余的叫做实例方法(非静态)。
实例方法在一个类中可以互相直接调用,实例方法可以调用该类的实例方法和类方法,类方法只能直接调用该类的类方法,
如果非要调用实例方法则需要使用new关键字,分配内存空间,方可调用。
一个类可以通过使用new运算符创建多个不同的对象,这些对象将被分配不同的内存空间,也就是对象的实例变量将被分配不同的空间,如果类中有类变量,那么所有对象的类变量都分配给相同一处内存,对象共享类变量。
当java程序执行时,类的字节码文件被加载到内存,如果这个类没有创建对象,那么类中的实例变量就不会分配内存。
但是,类变量在被加载到内存时,就已经分配了一个内存空间。
如果此类创建对象,每个对象有不同的实例变量。
类变量是所有对象共享,所有对象的类变量是相同的一处内存空间。
类变量可以通过类名直接访问,实例变量只能通过对象访问。
静态方法与实例方法的区别
类中的静态方法不能直接调用实例方法,是因为在类创建对象之前,实例方法还没有分配内存。
this关键字
this关键字出现在类的非构造方法中,代表当前对象,使用this主要是为了避免同名冲突。
public class A{
int age;
String name;
public void a(int age1,String name){
this.name =name;// 这里使用this是为了避免同名冲突。
this.age =age1;//这里this可以省略
}
}
private关键字。
在一个类中,不受访问权限的影响。
private表示私有,即用private修饰的变量与方法都是不可被其他类直接访问的。
但是可以同过调用一个共有的方法或者接口去访问。
final关键字
final可修饰类,方法,变量。
若修饰类,则该类不可被继承。
若修饰方法,则该方法不允许被重写。如String类。
若修饰变量,则变为常量,值不会改变。常常与static搭配使用。