构造器
1.构造器的作用:
a.创建对象
b.初始化对象的属性
2.说明
a.如果没有显式的定义类的构造器的话,则系统默认提供一个空参构造器
b.定义构造器的格式:权限修饰符 类名(形参){}
c.一个类可以有多个构造器,且构成overload
d.定义了显式的类构造器之后,系统就不再提供默认的构造器
e.一个类中至少有一个构造器(默认)
f.构造器不能被static、final、synchronized、abstract和native修饰,构造方法不能被子类继承
g.构造器没有返回值,且不能对已有对象调用构造器来初始化对象
代码示例:
/*
构造器
1.构造器的作用:
a.创建对象
b.初始化对象的属性
2.说明
a.如果没有显式的定义类的构造器的话,则系统默认提供一个空参构造器
b.定义构造器的格式:权限修饰符 类名(形参){}
c.一个类可以有多个构造器,且构成overload
d.定义了显式的类构造器之后,系统就不再提供默认的构造器
e.一个类中至少有一个构造器(默认)
f.构造器不能被static、final、synchronized、abstract和native修饰,构造方法不能被子类继承
g.构造器没有返回值,且不能对已有对象调用构造器来初始化对象
*/
public class PersonTest {
public static void main(String[] args){
//创建类的对象:new + 构造器
//Person p1 = new Person();//注释掉空参构造器后,该对象需要重新构造
Person p1 = new Person(18);
System.out.println(p1.age);
Person p2 = new Person("Zane");
System.out.println(p2.name);
p1.eat();
}
}
class Person{
String name;
int age;
/*显式构造器,当注释掉此构造器,通过默认构造器构建的p1则失效,
需要重新用显式的构造器进行构造
*/
// public Person(){
// System.out.println("constructor:Person()");
//
// }
//定义显式构造器
public Person(String n){
name = n;
}
public Person(int a){
age = a;
}
//Methods
public void eat(){
System.out.println("eating");
}
public void study(){
System.out.println("Studying");
}
}