默认构造方法的细节:
在描述事物时,没有显示指定构造方法,在编译Java文件时,编译器会自动给class文件中添加默认的构造方法。如果在描述类时,我们显示指定了构造方法,那么,当在编译Java源文件时,编译器就不会再给class文件中添加默认构造方法。
class Person{
//如果没有显示指定构造方法,编译会在编译时自动添加默认的构造方法
//Person(){} //空参数的默认构造方法
}
当描述的事物在创建其对象时就要明确属性的值,这时就需要在定义类的时候书写带参数的构造方法。若创建对象时不需要明确具体的数据,这时可以不用书写构造方法(不书写也有默认的构造方法)。
构造方法的细节:
1、一个类中可以有多个构造方法,多个构造方法是以重载的形式存在的
2、构造方法是可以被private修饰的,作用:其他程序无法创建该类的对象。
class Person {
private intage;
private String name;
// 私有无参数的构造方法,即外界不能通过new Person();语句创建本类对象
private Person() {
}
// 多个构造方法是以重载的形式存在
Person(int a) {
age = a;
}
Person(Stringnm, int a) {
name =nm;
age = a;
}
}
构造方法与一般方法的区别:
构造方法在对象创建时就执行了,而且只执行一次。
一般方法是在对象创建后,需要使用时才被对象调用,并可以被多次调用。
实例代码:
/*
* 构造方法的重载特性
* 参数列表不同
*/
public class Person {
private String name;
private int age;
//写空参数构造方法
public Person(){
}
//写带有两个参数的构造方法
public Person(String name,int age){
this.name = name;
this.age = age;
}
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 class Test {
public static void main(String[] args) {
//创建Person类的对象
//就是在调用他的构造方法
//1. 调用空参数构造方法,创建对象
Person p1 = new Person();
p1.setAge(18);
p1.setName("旺财");
System.out.println(p1.getName());
System.out.println(p1.getAge());
//2. 调用有2个参数的构造方法,创建对象
Person p2 = new Person("小强", 17);
System.out.println(p2.getName());
System.out.println(p2.getAge());
}
}
运行结果: