加载中...

Java的构造方法和标准JavaBean

构造方法

一、构造方法概述:

构造方法也叫做构造器,构造函数,平时叫做构造方法

二、构造方法的作用:

创建对象的时候,由虚拟机自动调用,给成员变量进行初始化(赋值)

三、构造方法的格式:

public class student{

修饰符 类名(参数){

​ 方法体;

​ }

}

四、特点:

  1. 方法名与类名相同,大小写也要一致

  2. 没有返回值类型,连void的都没有

  3. 没有具体的返回值(不能由return带回结果数据)

五、构造方法的两种形式:

  1. 无参数构造方法:初始化的对象时,成员变量的数据均采用默认值

  2. 有参数构造方法:在初始化对象的时候,同时可以为对象进行赋值

eg:
public class 构造方法01 {
    public class Student{
        private String name;
        private int age;
        public Student(){
            //空参的构造方法
        }
        public Student(String name,int age){
            //带参数的构造方法
        }
    }
}

六、执行时机:

  1. 创建对象的时候由虚拟机调用,不能手动调用构造方法

  2. 每创建一次对象,就会调用一次构造方法

eg:
public class Student {
    private String name;
    private  int age;
    //如果我们自己没有写任何的构造方法
    //那么虚拟机给我们加一个空参构造方法,方法内容如下
    public Student(){

    }
    //
    public Student(String name,int age){
        this.name = name;
        this.age = age;
    }
    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;
    }
}
package com.itheima.Method01Test03;

public class StudentTest {
    public static void main(String[] args) {
        Student s = new Student();//创建对象调用的空参构造
        Student s1 = new Student("张三",18);
        System.out.println(s1.getName());
        System.out.println(s1.getAge());
    }
}

运行结果:

张三
18

七、构造方法注意事项:

构造方法的定义:

  1. 如果没有定义构造方法,系统将给出一个默认的无参数构造方法

  2. 如果定义了构造方法,系统将不再提供默认的构造方法,此时如果需要使用,就需要自己写无参数构造器(构造方法)

构造方法的重载:

  1. 带参构造方法,和无参数构造方法,两者方法名相同,但是参数不同,这叫做构造方法的重载

推推荐的使用方法

  1. 无论是否使用,都建议手动书写无参数构造方法,和带全部参数的构造方法

标准JavaBean

一、标准的JavaBean类:

  1. 类名需要见名知意,驼峰命名

  2. 为了保证所有变量的安全性,成员变量使用private修饰

  3. 提供至少两个构造方法:1、无参构造方法,2、带全部参数的构造方法

  4. 成员方法:1、提供每一个成员变量对应的setXxx()/ getXxx() 2、如果还有其他行为也需要写上

快速生成set和get快捷键:Alt+insert或者Alt+Fn+insert或者鼠标右键、生成、seter和geter
使用插件PTG 1秒生成JavaBean:鼠标右键、PGT to JavaBean

二、练习:

public class User {
    private String username;
    private String password;
    private String email;
    private String gender;
    private int age;
    //空参
    public User(){}
    //带全部参数的构造方法
    public User(String username,String password,String email,String gender){
        this.username = username;
        this.password = password;
        this.email = email;
        this.gender = gender;
        this.age = age;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
使用插件PTG 1秒生成JavaBean:鼠标右键、PGT to JavaBean
public class user02 {
    private String username;
    private String password;
    private String email;
    private String gender;
    private int age;

    public user02() {
    }

    public user02(String username, String password, String email, String gender, int age) {
        this.username = username;
        this.password = password;
        this.email = email;
        this.gender = gender;
        this.age = age;
    }

    /**
     * 获取
     * @return username
     */
    public String getUsername() {
        return username;
    }

    /**
     * 设置
     * @param username
     */
    public void setUsername(String username) {
        this.username = username;
    }

    /**
     * 获取
     * @return password
     */
    public String getPassword() {
        return password;
    }

    /**
     * 设置
     * @param password
     */
    public void setPassword(String password) {
        this.password = password;
    }

    /**
     * 获取
     * @return email
     */
    public String getEmail() {
        return email;
    }

    /**
     * 设置
     * @param email
     */
    public void setEmail(String email) {
        this.email = email;
    }

    /**
     * 获取
     * @return gender
     */
    public String getGender() {
        return gender;
    }

    /**
     * 设置
     * @param gender
     */
    public void setGender(String gender) {
        this.gender = gender;
    }

    /**
     * 获取
     * @return age
     */
    public int getAge() {
        return age;
    }

    /**
     * 设置
     * @param age
     */
    public void setAge(int age) {
        this.age = age;
    }

    public String toString() {
        return "user02{username = " + username + ", password = " + password + ", email = " + email + ", gender = " + gender + ", age = " + age + "}";
    }
}
posted @ 2023-05-07 22:53  xiaoxiao1024  阅读(89)  评论(0编辑  收藏  举报