this关键字
² “this.属性”表示本类属性
建议:在类中,只要是调用类中属性的情况,都要使用“this.属性”的方式进行表示
² 调用本类方法
1.调用本类普通方法。this.方法()
2.调用本类构造方法。在一个构造方法中调用其他构造方法使用“this()”调用。
本类的构造方法,可以调用普通方法,但是普通方法不可以调用构造方法。
构造方法之间可以互相调用,使用this()调用构造方法的操作一定要放在构造方法的首行。且构造方法不可以递归调用。
² this表示当前对象
当前正在调用类中方法的对象都为当前对象,所有的当前对象都用this来表示。
static关键字
² 使用static定义属性
如果在类中的某个属性希望定义成公共属性(所有的对象都可以使用的属性),则可以再声明属性前加上static关键字。
Java中主要存在4块内存空间:
① 栈内存空间:保存所有的对象名称(保存了引用的堆内存空间的地址)
② 堆内存空间:保存每个对象的具体属性内容。
③ 全局数据区:保存static类型的属性。
④ 全局代码区:保存所有方法定义。
static属性最好通过类名称来调用,使用“类名称.static属性”完成访问。且static属性可以在没有实例化对象时进行调用。
² 使用static定义方法
使用static定义的方法在没有实例化对象的情况下,由类名称直接进行调用。
① static定义的方法不能调用非static的方法或属性
因为非static定义的属性和方法,必须实例化对象之后才可以使用,static定义的方法和属性可以在没有实例化对象的时候使用
② 非static定义的方法可以调用static的属性或方法
理解主方法
例1:
public class test {
public static void main(String args[]){
print();
}
public static void print(){
System.out.println("你好");
}
}
例2:
public class test {
public static void main(String args[]){
new test().print();
}
public void print(){
System.out.println("你好");
}
}
例2想要跟例1输出相同,则需要实例化一个对象来调用print()方法,即所有的非static方法都有一个共同的特点:需要实例化对象调用。