一、构造方法:构造函数、构建器、构造器--------复用给成员变量赋初值的代码
作用:给成员变量赋初值
特点:与类同名,没有返回值类型(连void都没有)
在创建(new)对象时被调用
若自己不写构造方法,编译器会默认提供一个无参的构造方法,若自己写了一个构造方法,则编译器不再提供
构造方法可以重载
Student s=new Student();
作用://1)创建一个学生对象
//2)为成员变量赋初值
//3)调用Student的构造方法
二、this:指代当前对象,谁调用方法,this就指谁
只能用在方法中,方法中调用成员变量之前默认有个this.
this的用法:
this.成员变量名-----------------访问成员变量
当成员与局部变量相同时,若想访问成员变量,则this.不能省略
this.方法名()---------------------调用方法(一般不用)
this()-------------------------------调用构造方法(一般不用)
三、null和NullPointerException
null:表示空,没有指向任何对象
若引用的值为null,则该引用不能进行任何点操作,否则会发生NullPointerException空指针异常
补充
一、Java规定,成员变量和局部变量是可以同名的,调用时采取就近原则
若想访问成员变量,则this.不能省
二、构造方法到底要不要传参,要看对象的数据能不能写死
若对象的数据都一样,意味着可以写死,就不需要传参
若对象的数据不一样,意味着不能写死,就需要传参
三、内存管理----由JVM管理
堆:new出来的对象(包括成员变量)
栈:局部变量(包括方法的参数)
今日主要代码
public class Student{
Strint name;
int age;
String address;
Student(String name,int age,String address){
this.name=name;
this.age=age;
this.address=address;
}
void sayHi(){
System.out.println("大家好,我叫"+name+",今年"+age+"岁了,家住"+address);
}
}
public static void main(String[] args){
Student zy=new Student("无所事事的小鱼人",21,"山东");
zy.sayHi();
}