构造方法:
构造方法又叫构造函数、构造器、构建器(作用为成员变量赋初值代码)
与类同名,没有返回值类型
在创建本类对象时自动调用
如果不自己定义构造方法则编译器提供一个无参构造方法,若自己写了构造方法则不再默认提供
构造方法可以重载(无参构造,含参构造,多个参数的含参构造)
this:指代当前对象,谁调用方法,他指的就是哪个对象(this只能用在方法中,方法中访问成员变量时变量前默认有this.)
this的用法:
this.成员变量名------访问成员变量 成员变量与局部变量同名时想要访问成员变量则this必须加上,否则访问的则是局部变量
this.方法名()----------调用方法
this()--------------------调用构造方法
class Student {
String name; //成员变量(整个类中)
int age;
String address;
//局部变量(当前方法中)
Student(String name,int age,String address){
this.name = name;
this.age = age;
this.address = address;
}
void study(){
System.out.println(name+"在学习...");
}
void sayHi(){
System.out.println("大家好,我叫"+name+",今
年"+age+"岁了,家住"+address);
}
}
null:表示空,没有指向对象,如果引用的值为null,则不能进行点操作,否则会发生空指针异常(NullpointerException)
成员变量和局部变量是可以同名的,使用时采用就近原则,如果想要访问成员变量则需要使用this.
内存管理:
堆:new出来的对象(包括成员变量),字符串常量池
栈:局部变量(包括方法的参数)
方法区:.class文件,静态变量,方法
成员变量:写在类里方法外,全局共享,有默认值
局部变量:方法中定义的变量,没有默认值
数组也是对象,也存储在堆中,数组的元素当做成员变量一同储存在堆中