创建对象的过程
第一次遇到Person类的时候 进行类的加载 并且只加载一次
创建对象 为这个对象在堆中开辟空间
为这个对象进行属性的初始化动作
new关键字实际上是在调用一个方法 这个方法叫做构造器
调用构造器的时候 如果你的类中没有写构造器 那么系统会默认分配构造器 只是我们看不到
可以自己显示的将构造器编写出来
构造器和属性是并列的 没有谁先谁后
构造器的格式
[修饰符] 构造器的名字 (){
}
构造器和方法的区别
没有方法的返回值
方法体内部不能有return
构造器的名字很特殊 必须和类名一致
没有任何参数的构造器叫做空参 空
构造器的作用
不是为了创造对象
因为在调用构造器之前 这个对象就已经创造好了 并且属性有默认的初始化的值
调用的构造器的目的是为了给属性进行赋值进行操作操作
我们一般不会在空构造器里进行初始化操作 因为那样的话每个对象的属性就一样
实际上我们只要保证空构造器的存在就可以了 里面的东西不要写
构造器的重载
一般保证空构造器的存在 空构造器中一般不会进行属性的赋值操作
一般我们会重载构造器 在重载的构造器中进行属性赋值
在重载构造器以后 假如空构造器忘写了 系统也不会给你分配默认的空构造器 那么你要调用的空构造器就会出错了 因为你已经写了 系统就默认你有了
当形参名字和属性名字重名的时候 会出现就近原则 这个时候在要表示对象的属性前加上this 来修饰 因为this代表的就是你创建的那个对象
public class Person {
String name;
int age;
double height;
public Person(){
}
public Person(String name,int age,double height){
this.name = name;
this.age = age;
this.height = height;
}
public void eat(){
System.out.println("我喜欢吃饭");
}
}