一、构造器的作用
1、创建对象
2、初始化对象属性
说明
1、如果没有显式定义一个构造器的话,系统默认提供一个空参的构造器。
2、定义构造器的格式: 权限修饰符 类名 (形参列表){ }
构造器与类同名
3、一个类中定义的多个构造器,彼此构成重载
4、一旦我们显示的定义构造器,系统就不再提供默认的构造器了,也就是说,如果我们定义了一个构造器,如果这个构造器不是Person()这种形参列表为空的构造器,如果我们在main方法中还写:Person p=new Person();则会报错,因为我们定义了一个Person的构造器,但是不是Person()这种的,则会报错提示“没有定义Person()的构造器”。此时系统也不再提供。
5、一个类中至少有一个构造器(默认或自己写的)
【补充】默认构造器权限
默认构造器权限是根据类的权限,比如创建构造器的所在的类是public权限,则默认的构造器权限也为public。
二、总结:属性的赋值过程
属性赋值的先后顺序:
①默认初始化
②显式初始化
③构造器初始化
④通过“对象.方法”赋值
以上操作的先后顺序:① - ② - ③ - ④
验证过程:
public class UserTest {
public static void main(String[] args){
User u=new User();
System.out.println("name="+u.name+",age="+u.age);//默认初始化值
System.out.println("name="+u.name+",age="+u.age);//显式赋值
User u1=new User(12);
System.out.println("name="+u1.name+",age="+u1.age);//构造器赋值
}
}
class User{
String name;
// int age; //默认初始化值
int age=1;
public User(){
}
public User(int a){
age=a;
}
}
三、扩展:JavaBean
JavaBean是用Java语言写成的可重用组件。
其实就是满足如下条件的Java类:
①类是公共的
②有一个无参的公共构造器
③有属性,且有对应的get、set方法
public class Customer {
private int age;
private String name;
public Customer(){
}
public String getName(){
return name;
}
public void setName(String n){
name=n;
}
public int getAge(){
return age;
}
public void setAge(int a){
age=a;
}
}
四、UML类图
banking是包名