构造器(构造方法)
一个类即使什么都不写,也会有一个默认的构造方法。
构造器一般都是用来初始化类对象的值。
构造器的特点:
1.方法名要与类名相同。
2.没有返回值。
生成构造器的快捷键:
Windows: alt+insert
Mac: command+N
显式地定义构造方法:
![image-20221012180604781](/Users/ericyang/Library/Application%20Support/typora-user-images/image-20221012180604781.png)
使用new方法创建对象时一定会调用类的构造方法。
有参构造和无参构造
无参:public Person(){
name=“hahaha”;
}
有参:public Person(String name){
This.name = name;
}
注意:一旦定义了有参构造,如果还要使用无参构造,就必须要显式定义无参构造(就是要把无参构造方法在类中写出来)
创建对象的内存分析
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TdvdXijZ-1668761931878)(/Users/ericyang/Library/Application Support/typora-user-images/image-20221012183014264.png)]
main()方法最先被压入栈中
方法区(也在堆中)中会加载项目中的类模板,比如说,项目中有一个Person类和一个Pet类,类中有各自的如姓名,年龄等属性和方法。这些都会被加载到静态方法区。(以便在程序需要创建对象的时候调用)
使用new创建对象的时候,会按静态方法区中的类模板,在堆中开辟一块空间给具体创建的对象,并为类对象的各个属性赋予初始值。
栈中存放的是引用变量名。如Pet cat=new Pet(); 其中cat就是引用变量名,他实际上代表着一块内存空间的地址。