举报投诉联系我们 手机版 热门标签 VUE中文网
您的位置:VUE中文网 > java构造函数引用其他类 Java 构造函数引用

java构造函数引用其他类 Java 构造函数引用

2023-03-11 05:17 Java教程

java构造函数引用其他类 Java 构造函数引用

java构造函数引用其他类

Java构造函数是一种特殊的方法,它用于创建对象。它可以引用其他类,以便在创建对象时使用其他类的功能。

Java构造函数可以引用其他类的成员变量和方法,这样就可以在创建对象时使用其他类的功能。例如,如果要创建一个新的学生对象,可以使用Student类中定义的成员变量和方法来实现。

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

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    } 
} 

上面是一个Student类的例子,它有两个成员变量name和age,并且有一个构造函数来初始化这些成员变量。此外,还有两个getter方法来获取name和age的值。

 
public class Test { 

    public static void main(String[] args) { 

        Student s1 = new Student("John", 20); 

        System.out.println("Name: " + s1.getName()); 

        System.out.println("Age: " + s1.getAge()); 

    } 
}  											   

上面是一个Test类的例子,它使用Student类中定义的构造函数来创建一个新的学生对象s1。然后使用Student类中定义的getter方法来获取s1对象中name和age成员变量的值。

因此,Java构造函数不仅能够引用其他类中定义的成员变量,还能够引用其他类中定义的方法。这样就能够在创建对象时使用其他类中已有功能,而不必再去重新定义相同功能代码。

Java 构造函数引用

Java Lambda - Java构造函数引用

我们可以使用构造函数创建一个lambda表达式。

使用构造函数引用的语法是

ClassName::new

关键字new指的是类的构造函数。编译器根据上下文选择一个构造函数。

import java.util.function.Function;
import java.util.function.Supplier;

public class Main{
  public static void main(String[] argv){
    Supplier<String> func1  = () ->  new String();
    System.out.println("Empty String:"+func1.get());
    
    Function<String,String> func2  = str ->  new String(str);
    
    System.out.println(func2.apply("www..cn"));

    Supplier<String> func3  = String::new;
    System.out.println("Empty String:"+func3.get());
    
    Function<String,String> func4  = String::new;
    System.out.println(func4.apply("www..cn"));
  }
}

上面的代码生成以下结果。

数组构造函数引用

我们可以使用数组构造函数创建一个数组如下。

ArrayTypeName::new

int [] :: new 是调用 new int [] new int [] 需要一个 int 类型值作为数组长度,因此 int [] :: new 需要一个 int 类型输入值。

以下代码使用数组构造函数引用创建一个int数组。

import java.util.Arrays;
import java.util.function.IntFunction;

public class Main{
  public static void main(String[] argv){
    IntFunction<int[]> arrayCreator1 = size ->  new int[size];
    // Creates an  int array of  five  elements
    int[] intArray1  = arrayCreator1.apply(5);
    System.out.println(Arrays.toString(intArray1));

    IntFunction<int[]> arrayCreator2 = int[]::new;
    int[] intArray2 = arrayCreator2.apply(5); 
    System.out.println(Arrays.toString(intArray2));
  }
}

上面的代码生成以下结果。



例2

通过使用 Function< Integer,Array Type> ,我们可以在声明中指定数组类型。

import java.util.Arrays;
import java.util.function.Function;

public class Main{
  public static void main(String[] argv){
    Function<Integer,int[]>  arrayCreator3 = int[]::new;
    int[] intArray  = arrayCreator3.apply(5); 
    System.out.println(Arrays.toString(intArray));
  }
}

上面的代码生成以下结果。

例3

我们可以在创建二维数组时指定第一维的长度。

import java.util.Arrays;
import java.util.function.IntFunction;

public class Main{
  public static void main(String[] argv){
    IntFunction<int[][]> TwoDimArrayCreator  = int[][]::new;
    int[][] intArray = TwoDimArrayCreator.apply(5); 
    // Creates an  int[5][]  array
    intArray[0] = new int[5]; 
    intArray[1] = new int[5];
    intArray[2] = new int[5];
    intArray[3] = new int[5];
    intArray[4] = new int[5];
    
    System.out.println(Arrays.deepToString(intArray));
  }
}

上面的代码生成以下结果。

阅读全文
以上是VUE中文网为你收集整理的java构造函数引用其他类 Java 构造函数引用全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 VUE中文网 vue88.com 版权所有 联系我们