引用构造器练习

简介: 引用构造器练习

一、练习需求

引用构造器,其实就是引用构造方法


格式:类名::new


范例:Student::new


1、定义一个类(Student),里面有两个成员变量(name,age)


       并提供无参构造方法和带参构造方法,以及成员变量对应的get和set方法


2、定义一个接口(StudentBuilder),里面定义一个抽象方法


       Student build(Student name,int age);


3、 定义一个测试类(StudentDemo),在测试类中提供两个方法


       一个方法是:useStudentBuilder(StudentBuilder s)


       一个犯方法是主方法,在主方法中调用useStudentBuilder方法

二、代码

Student类:

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;
    }
}

StudentBuilder接口:

public interface StudentBuilder {
    Student build(String name, int age);
}

StudentDemo测试类:

public class StudentDemo {
    public static void main(String[] args) {
        //在主方法中调用useStudentBuilder方法
        useStudentBuilder((name, age) -> new Student(name, age));
        //引用构造器
        useStudentBuilder(Student :: new);
        //Lambda表达式被构造器替代的时候,它的形式参数全部传递给构造器作为参数
    }
    private static void useStudentBuilder(StudentBuilder s) {
        Student sb = s.build("林青霞", 30);
        System.out.println(sb.getName() + "," + sb.getAge());
    }
}

三、运行结果

830894c2b69c4782957836d02e1c0933.png

目录
相关文章
|
6月前
|
存储 Cloud Native 编译器
C++ 对象生成:构造函数
C++ 对象生成:构造函数
|
2月前
|
编译器 C++
30利用构造函数对类对象进行初始化
30利用构造函数对类对象进行初始化
17 0
|
12月前
方法引用符、引用类方法、引用对象的实例方法、引用类的实例方法及引用构造器
方法引用符、引用类方法、引用对象的实例方法、引用类的实例方法及引用构造器
70 0
|
缓存 Dart 安全
Dart中的类——初始化列表、命名构造器、factory构造器、常量构造器、构造器私有化、get和set方法、枚举
Dart中的类——初始化列表、命名构造器、factory构造器、常量构造器、构造器私有化、get和set方法、枚举
|
Java C++
C++类中在构造器中调用本类的另外构造器
C++类中在构造器中调用本类的另外构造器
78 0
学生类-构造函数
学生类-构造函数
115 0
使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变
使用final关键字修饰一个变量时,是指引用变量不能变,但是引用变量所指向的对象中的内容还是可以改变的。
362 0
使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变
|
编译器
类的构造函数
类的构造函数
132 0
|
Java 编译器
方法引用的那些事儿
一句话介绍: > **方法引用**(**_Method Reference_**)是在 Lambda 表达式的基础上引申出来的一个功能。 先不铺展概念,从一个示例开始说起。 # 一、小示例 ```java List list = Arrays.asList(1, 2, 3); list.forEach(num -> System.out.println(num));
411 0