【Java】构造方法

发布于:2023-10-01 ⋅ 阅读:(174) ⋅ 点赞:(0)

目录

构造方法

注意事项

构造方法——标准类的制作


构造方法

构造方法是一种特殊的方法

作用:创建对象

功能:主要是完成对象数据的初始化

public class Student {
    修饰符 类的名称(参数) {
    // 修饰符 一般默认的情况下 是public 修饰符
    }
}

Student.java如下:

package com.面向对象.Demo3;

public class Student {
    private String name;
    private int age;

    /**
     * 注意:构造方法 方法的名称一定与类的名称一样
     * 构造方法
     * - 无参构造方法
     * - 有参构造方法
     */
    public Student() {
        System.out.println("Student 已经开始初始化啦!");
    }

    public String show() {
        return name + "-" + age;
    }
}

StudentDemo.java如下:

package com.面向对象.Demo3;

public class StudentDemo {
    public static void main(String[] args) {
        // new 执行到 构造方法 构造方法中做一些初始化操作
        Student s1 = new Student(); // Student 已经开始初始化啦!
        String show = s1.show();
        System.out.println(show); // null-0
    }
}

注意事项

构造方法的创建

  1. 如果没有定义构造方法,系统将给出一个默认的无参构造方法
  2. 如果定义了构造方法,系统将不再提供默认的构造方法

方法重载:

        构造方法名称相同但是参数列表不同 就是重载。

注意:如果自定义了带参数的构造方法,还要使用无参构造方法,就必须要写一个无参构造方法

作用:主要给我们对象中的 成员变量 赋值的操作

Student.java

package com.面向对象.Demo3;

public class Student {
    private String name;
    private int age;

    /**
     * 注意:构造方法 方法的名称一定与类的名称一样
     * 如果没有定义构造方法,系统将给出一个默认的无参构造方法
     * 如果定义了构造方法,系统将不再提供默认的构造方法
     * 构造方法
     * - 无参构造方法
     * - 有参构造方法
     * 注意:如果自定义了带参数的构造方法,还要使用无参构造方法,就必须要写一个无参构造方法
     */
    // 无参构造方法
    public Student() {
        System.out.println("Student 已经开始初始化啦!");
    }

    // 有参构造方法
    public Student(String name) {
        this.name = name;
    }

    // 方法重载
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 方法重载
    public Student(int age) {
        this.age = age;
    }

    public String show() {
        return name + "-" + age;
    }
}

StudentDemo.java

package com.面向对象.Demo3;

public class StudentDemo {
    public static void main(String[] args) {
        // new 执行到 构造方法 构造方法中做一些初始化操作
        Student s1 = new Student(); //无参构造方法 执行无参构造方法 输出:Student 已经开始初始化啦!
        System.out.println("s1:"+s1.show()); // s1:null-0

        Student s2 = new Student("mayikt"); //有参构造方法
        System.out.println("s2:"+s2.show()); // s2:mayikt-0

        Student s3 = new Student("mayikt",21);
        System.out.println("s3:"+s3.show()); // s3:mayikt-21

        Student s4 = new Student(21);
        System.out.println("s4:"+s4.show()); // s4:null-21
    }
}

构造方法——标准类的制作

  1. 成员变量
    1. 使用 private 修饰
  2. 构造方法
    1. 提供一个无参构造方法
    2. 提供一个带多个参数的构造方法
  3. 成员方法
    1. 提供每一个成员变量对应的 setXxx() / getXxx()
    2. 提供一个显示对象信息的 toString()
  4. (测试类)创建对象并为其成员变量赋值的两种方式 
    1. 无参构造方法创建对象后使用 setXxx() 赋值
    2. 使用带参数构造方法直接创建带有属性值的对象

Student.java

package com.面向对象.Demo4;

public class Student {
    /**
     * 1. 成员变量
     * 使用 private 修饰
     */
    private String name;
    private int age;

    /**
     * 2. 定义无参构造和有参构造函数
     */
    public Student() {
        System.out.println("无参构造函数...");
    }

    public Student(String name, int age) {
        System.out.println("通过有参构造构造函数给成员属性赋值...");
        this.name = name;
        this.age = age;
    }

    /**
     * 3.成员方法 提供 get/set方法
     */
    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;
    }

    /**
     * 返回该类中所有的成员变量值
     * @return name-age
     */
    public String toString() {
        return name + "-" + age;
    }
}

上方的内容可以自动生成

StudentDemo.java

package com.面向对象.Demo4;

public class StudentDemo {
    public static void main(String[] args) {
        // 演示就是通过 set 方法给我们成员属性赋值
        Student s1 = new Student(); // 无参构造函数...
        s1.setName("mayikt");
        s1.setAge(21);
        System.out.println(s1.toString()); // mayikt-21

        // 通过有参构造函数 赋值
        Student s2 = new Student("meite",24);
        System.out.println(s2.toString()); // meite-24
    }
}

下一篇文章:this使用细节


网站公告

今日签到

点亮在社区的每一天
去签到