java 构造方法

196 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第7天,点击查看活动详情

构造方法(掌握)

构造方法概述

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

  • 作用:创建对象 Student stu = new Student();

  • 格式:

    public class 类名 {
        修饰符 类名(参数) {
        }
    }
    
  • 功能:主要是完成对象数据的初始化

  • 示例代码:

class Student {
    private String name;
    private int age;
​
    //构造方法
    public Student() {
        System.out.println("无参构造方法");
    }
​
    public void show() {
        System.out.println(name + "," + age);
    }
}
/*
    测试类
 */
public class StudentDemo {
    public static void main(String[] args) {
        //创建对象
        Student s = new Student();
        s.show();
    }
}

构造方法的注意事项

  • 构造方法的创建

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

  • 构造方法的重载

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

  • 推荐的使用方式

无论是否使用,都手工书写无参数构造方法

  • 重要功能!

可以使用带参构造,为成员变量进行初始化

  • 示例代码
/*
    学生类
 */
class Student {
    private String name;
    private int age;
​
    public Student() {}
​
    public Student(String name) {
        this.name = name;
    }
​
    public Student(int age) {
        this.age = age;
    }
​
    public Student(String name,int age) {
        this.name = name;
        this.age = age;
    }
​
    public void show() {
        System.out.println(name + "," + age);
    }
}
/*
    测试类
 */
public class StudentDemo {
    public static void main(String[] args) {
        //创建对象
        Student s1 = new Student();
        s1.show();
​
        //public Student(String name)
        Student s2 = new Student("林青霞");
        s2.show();
​
        //public Student(int age)
        Student s3 = new Student(30);
        s3.show();
​
        //public Student(String name,int age)
        Student s4 = new Student("林青霞",30);
        s4.show();
    }
}

标准类(JavaBean)制作

JavaBean是 Java语言编写类的一种标准规范。JavaBean在任何官方网站都没有一个正式的概念来定义它,只是我们根据它的特点来定义它为JavaBean,其实他就是一个普通的Java类,用来封装数据的,它具备如下特点:

1、要求这个类必须拥有一个公共的空参数的构造方法,外界可以访问到;

2、它如果有属性(成员变量),全部必须私有;

3、对外提供公共的get或者set方法,并且方法的命名要遵守一定的规则。

举例:

属性 name ----- 方法 getName setName (属性首字母大写,在前面加上 get和set )。

属性 age ----- 方法 getAge setAge 。

把这样的一个类称为一个JavaBean类。这个类在程序中主要用于封装数据。

new一个对象,通过set方法给所有的属性设置值,在其他的程序就可以通过这个对象的get方法获取值。

如下所示:

public class ClassName{
    //成员变量
    //构造器
    //无参构造器【必须】
    //有参构造器【建议】
    //成员方法  
    //getXxx()
    //setXxx()
}
  • 需求:定义标准学生类,要求分别使用空参和有参构造方法创建对象,空参创建的对象通过setXxx赋值,有参创建的对象直接赋值,并通过show方法展示数据。
  • 示例代码:
class Student {
    //成员变量
    private String name;
    private int age;
​
    //构造方法
    public Student() {
    }
​
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
​
    //成员方法
    public void setName(String name) {
        this.name = name;
    }
​
    public String getName() {
        return name;
    }
​
    public void setAge(int age) {
        this.age = age;
    }
​
    public int getAge() {
        return age;
    }
​
    public void show() {
        System.out.println(name + "," + age);
    }
}
/*
    创建对象并为其成员变量赋值的两种方式
        1:无参构造方法创建对象后使用setXxx()赋值
        2:使用带参构造方法直接创建带有属性值的对象
*/
public class StudentDemo {
    public static void main(String[] args) {
        //无参构造方法创建对象后使用setXxx()赋值
        Student s1 = new Student();
        s1.setName("林青霞");
        s1.setAge(30);
        s1.show();
​
        //使用带参构造方法直接创建带有属性值的对象
        Student s2 = new Student("林青霞",30);
        s2.show();
    }
}