gpt4 book ai didi

java - 从同一类中的另一个构造函数访问构造函数变量

转载 作者:行者123 更新时间:2023-11-30 04:08:59 27 4
gpt4 key购买 nike

public GObject(Point3D[] v, Face[] f){
vertex = v;
face = f;
}

public GObject(String fileName){
try{
...//read contents of file and store in an array
Point3D[] vertices = new Point3D[numOfVertices];

} catch(Exception e){
System.out.println("Can't read file " + e.getMessage());
}
}

第二个构造函数读取传递给它的文件,并且我已将这些值成功存储在顶点数组中,但是如何将顶点数组从第二个构造函数传递到第一个构造函数作为参数,以便 v = 顶点

最佳答案

您需要使用这个 -

public GObject(String fileName){
this(new Point3D[numOfVertices], new Face[5]); // `5` is just for example.

try{
...//read contents of file and store in an array
Point3D[] vertices = new Point3D[numOfVertices];

} catch(Exception e){
System.out.println("Can't read file " + e.getMessage());
}
}

请注意,如果您使用此方法,则对 this 的调用必须是第二个构造函数的第一个语句。如果你很难遵守这个限制,那么我建议你这样做 -

public GObject(Point3D[] v, Face[] f){
setV(v);
face = f;
}

public GObject(String fileName){
try{
...//read contents of file and store in an array
setV(new Point3D[numOfVertices]);
} catch(Exception e){
System.out.println("Can't read file " + e.getMessage());
}
}

private void setV(Point3D[] v) {
vertex = v;
}

我认为第二种方法更好,因为它不会强制您仅仅为了调用另一个构造函数而构造一个 Face 数组。您还可以稍后更改设置逻辑或轻松合并验证。

关于java - 从同一类中的另一个构造函数访问构造函数变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20092572/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com