创建与初始化对象
使用new关键字创建对象
使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用。
类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:
示例1:
package oop.demo02;
// java ---> class
public class Person {
// 一个类即使什么都不写,它也会存在一个方法
// 显式的定义构造器
String name;
int age;
// alt + insert,(或者右键选择Generate)
// 然后选择constuctor,,选择多个按住Ctrl键,然后点击OK就能生成有参构造,
// 点击Select none就能生成无参构造
// 无参构造
// 1.使用new关键字,本质是在调用构造器
// 2.用来初始化值
public Person(){
}
// 有参构造:一旦定义了有参构造,无参就必须显式定义
public Person(String name){
this.name = name;
}
public Person(String name,int age){
this.name = name;
this.age = age;
}
}
/*
public static void main(String[] args) {
// new 实例化了一个对象
Person person = new Person("llh",21);
System.out.println(person.name);
}
构造器:
1. 和类名相同
2. 没有返回值
作用:
1. new 本质在调用构造方法
2. 初始化对象的值
注意点:
1. 定义有参构造之后,如果想使用无参构造,显式的定义一个无参的构造
Alt + Insert 或 右键选择Generate
this. =
*/
创建对象内存分析
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Esifdzxb-1602553967486)(file:///C:\Users\llhnb\Documents\Tencent Files\3038971063\Image\C2C\Image1\LY73HWQH20%QX{C94_I_ZAC.png)]
示例2:
package oop.demo03;
public class Pet {
public String name; // name:null
public int age; //age:0
// 默认有一个无参构造
public void shout(){
System.out.println("叫了一声");
}
}
/*
public static void main(String[] args) {
Pet dog = new Pet();
dog.name = "旺财";
dog.age = 3;
dog.shout();
System.out.println(dog.name);
System.out.println(dog.age);
Pet cat = new Pet();
}
*/