14.1 概述
访问修饰符 类名 (参数列表){
// 初始化语句;
}
构造器的组成:
示例:
package com.constructor;
/**
* @author maxiaoke.com
* @version 1.0
*/
public class Animal {
/**
* 腿
*/
private int legs;
public Animal() {
this.legs = 4;
}
public Animal(int legs) {
this.legs = legs;
}
public int getLegs() {
return this.legs;
}
public void setLegs(int legs) {
this.legs = legs;
}
}
package com.constructor;
/**
* @author maxiaoke.com
* @version 1.0
*/
public class AnimalTest {
public static void main(String[] args) {
// 创建Animal的实例,调用无参构造器,将legs初始化为4
Animal animal = new Animal();
System.out.println("animal.getLegs() = " + animal.getLegs());
}
}
14.2 构造器的作用
② 给对象进行初始化。
示例:
Order o = new Order();
示例:
Person p = new Person("张三",15);
14.4 构造器的分类
14.5 使用构造器的注意事项
14.6 构造器的重载
class Person{
String name;
int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
}
构造器重载使得创建对象更加灵活,可以很方便的创建不同的对象,如:
class Person{
String name;
int age;
private Date birthday;
public Person(String name,int age){
this.name = name;
this.age = age;
}
public Person(String name,int age,Date birthday){
this(name,age);
this.birthday = birthday;
}
...
}
14.7 练习
public Student(String name,int age){}
public Student(String name,int age,String school){}
public Student(String name,int age,String school,String major){}
③ 在 main 方法中分别调用不同的构造器创建不同的对象,并输出其属性值。
示例:
package com.constructor.demo2;
/**
* @author maxiaoke.com
* @version 1.0
*/
public class Student {
/**
* 名称
*/
private String name;
/**
* 年龄
*/
private int age;
/**
* 学校
*/
private String school;
/**
* 专业
*/
private String major;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public Student(String name, int age, String school) {
this(name, age);
this.school = school;
}
public Student(String name, int age, String school, String major) {
this(name, age, school);
this.major = major;
}
@Override
public String toString() {
return "Student{" + "name='" + this.name + '\'' + ", age=" + this.age + ", school='" + this.school + '\''
+ ", major='" + this.major + '\'' + '}';
}
}
package com.constructor.demo2;
/**
* @author maxiaoke.com
* @version 1.0
*/
public class StudentTest {
public static void main(String[] args) {
Student s1 = new Student("张三", 25);
System.out.println("s1 = " + s1);
Student s2 = new Student("李四", 18, "中国社会大学");
System.out.println("s2 = " + s2);
Student s3 = new Student("王五", 17, "中国社会大学", "萌萌哒专业");
System.out.println("s3 = " + s3);
}
}
14.8 属性赋值总结