首先对象的初始化过程
对象初始化又称为对象实例化。Java对象在其被创建时初始化
通过new关键字来调用一个类的构造函数,通过构造函数创建一个对象。
1 默认初始化
2 匿名代码块
3 构造方法初始化
下面我们定义一个dog类进行说明
public class Dog {
// 建立私有属性
private String name;
private int age;
private char sex;
// 匿名代码块
{
showInfo();
System.out.println("---------匿名代码块---------------");
}
{
showInfo();
System.out.println("---------匿名代码块2---------------");
}
{
System.out.println("--------匿名代码块3开始---------------");
this.age = 1;
this.name = "柯基";
this.sex = '公';
showInfo();
System.out.println("--------匿名代码块3结束---------------");
}
/**
* 无参数的构造方法
*/
public Dog() {
System.out.println("--------无参数的构造方法---------------");
this.age = 5;
this.name = "旺财";
this.sex = '公';
showInfo();
}
/**
* @param name
* @param age
* @param sex
* 有参数的构造方法
*/
public Dog(String name, int age, char sex) {
System.out.println("--------有参数的构造方法---------------");
this.name = name;
this.age = age;
this.sex = sex;
showInfo();
}
//set get方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
//打印方法
public void showInfo() {
System.out.println(this.age+"\t"+this.name+"\t"+this.sex);
}
//main方法调用
public static void main(String[] args) {
//调用无参数的构造方法
Dog dog = new Dog();
//调用有参数的构造方法
Dog dog1 = new Dog("二哈",3,'母');
}
}
运行结果如下
0 null
---------匿名代码块---------------
0 null
---------匿名代码块2---------------
--------匿名代码块3开始---------------
1 柯基 公
--------匿名代码块3结束---------------
--------无参数的构造方法---------------
5 旺财 公
0 null
---------匿名代码块---------------
0 null
---------匿名代码块2---------------
--------匿名代码块3开始---------------
1 柯基 公
--------匿名代码块3结束---------------
--------有参数的构造方法---------------
3 二哈 母
匿名代码块可以出现多个按顺序执行