构造器

  • 一、构造器基本概念:
  • 1.构造器的作用
  • 2.构造器声明语法格式
  • 3. 构造器的分类
  • 注意事项
  • 二、构造器的重载
  • 三、属性赋值的先后顺序
  • 四、JavaBean。
  • 五、拓展知识:UML类图


一、构造器基本概念:

1.构造器的作用

  1. 创建对象
  2. 初始化对象的信息

2.构造器声明语法格式

语法格式 :
权限修饰符 类名 (参数列表) {
初始化语句 }

3. 构造器的分类

(根据参数不同)两类:
1.隐式无参构造器(系统默认提供)
2.显式定义一个或多个参数的带参构造器
特征
① 它具有与类相同的名称
② 它不声明返回值类型(与声明为void不同)。
③ 不能被static、final、synchronized、abstract、native修饰,不能有return语句返回值

注意事项

  1. Java语言中,每个类都至少有一个构造器;如果没有显式的定义类的构造器的话,则系统默认提供一个空参的构造器;
    默认构造器的修饰符与所属类的修饰符一致。一旦显式定义了类的构造器,则系统不再提供默认(空参)构造器
  2. 一个类中定义的多个构造器,彼此构成重载(一个类可以创建多个重载的构造器)
  3. 父类的构造器不能被子类继承

二、构造器的重载

  1. 构造器一般用来创建对象的同时初始化对象。
    class Person{
    String name;
    int age;
    public Person(String n , int a){ name=n; age=a;}
    }
  2. 构造器重载使得对象的创建更加灵活,方便创建各种不同的对象。
  3. 构造器重载,参数列表必须不同。

三、属性赋值的先后顺序

① 默认初始化
② 显式初始化(多个初始化块依次被执行(同级别下按先后顺序执行)) / ⑤ 代码块中赋值
③ 构造器中初始化
④ 通过"对象.方法" 或 "对象.属性"的方式,赋值
以上操作的先后顺序:① - ② / ⑤ - ③ - ④

四、JavaBean。

定义:JavaBean是一种Java语言写成的可重用组件。
特征:指符合如下标准的Java类:
① 类是公共的 public
② 有一个无参的公共的构造器
③ 有属性,且有对应的get、set方法
作用:用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用Java代码创造的对象进行打包,
并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。

五、拓展知识:UML类图

  • 表示 public 类型, - 表示 private 类型,#表示protected类型
  1. 类名; 属性:“:”前是属性名,“:”后是属性的类型; 方法。
  2. 方法的写法: 方法的类型(+、-) 方法名(参数名: 参数类型):返回值类型
    注意:若方法有下划线表示为构造器

代码展示

// 构造器的讲解及测试
class PersonTest {
    public static void main(String[] args) {
        //创建类的对象:new + 构造器
        Person p = new Person();

        p.eat();

        Person p1 = new Person("Tom");

        System.out.println(p1.name);


    }
}
class Person{
    //属性
    String name;
    int age;

    //构造器
    public Person(){
        System.out.println("Person().....");
    }

    public Person(String n){
        name = n;

    }
    //
    public Person(String n,int a){
        name = n;
        age = a;
    }


    //方法
    public void eat(){
        System.out.println("人吃饭");
    }

    public void study(){
        System.out.println("人可以学习");
    }

}
//JavaBean是一种Java语言写成的可重用组件。测试
class Order3 {

    private int id;
    private String name;

    public Order3() {

    }

    public void setId(int i) {
        id = i;
    }

    public int getId() {
        return id;
    }

    public void setName(String n) {
        name = n;
    }

    public String getName() {
        return name;
    }
}