默认构造方法和细节

本文记录Java学习过程中遇到的默认构造方法和细节~

在没有学习构造方法之前,我们也可以通过new关键字创建对象,并调用相应的方法,同时在描述事物时也没有写构造方法。这是为什么呢?

在之前学习的过程中,描述事物时,并没有显示指定构造方法,当在编译Java文件时,编译器会自动给class文件中添加默认的构造方法。如果在描述类时,我们显示指定了构造方法,那么,当在编译Java源文件时,编译器就不会再给class文件中添加默认构造方法。

示例代码(无参构造方法):

class  Person {
	//如果没有显示指定构造方法,编译会在编译时自动添加默认的构造方法
	//Person(){}  //空参数的默认构造方法
}

当在描述事物时,要不要在类中写构造方法呢?这时要根据描述事物的特点来确定,当描述的事物在创建其对象时就要明确属性的值,这时就需要在定义类的时候书写带参数的构造方法。若创建对象时不需要明确具体的数据,这时可以不用书写构造方法(不书写也有默认的构造方法)。

构造方法的细节:

  1. 一个类中可以有多个构造方法,多个构造方法是以重载的形式存在的;
  2. 构造方法是可以被private修饰的,作用:其他程序无法创建该类的对象。

示例代码(默认构造方法):

class Person {
	private int age;
	private String name;

	// 私有无参数的构造方法,即外界不能通过new Person();语句创建本类对象
	private Person() {
	}

	// 多个构造方法是以重载的形式存在
	Person(int a) {
		age = a;
	}

	Person(String nm, int a) {
		name = nm;
		age = a;
	}
}

标签: none