Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建创建数组的类_Java_Arrays_Class_Private_Upcasting - Fatal编程技术网

Java 创建创建数组的类

Java 创建创建数组的类,java,arrays,class,private,upcasting,Java,Arrays,Class,Private,Upcasting,我正试图创建一个类,为一个项目创建数组,我一直在拼命研究如何做到这一点 public class Team { private Object arr; void createTeam(){ String[] arr = new String[15]; } } 使用new创建阵列后,如果需要,请将其分配给arr参考 想在Team类中使用arr public class Team { private String[] arr;

我正试图创建一个类,为一个项目创建数组,我一直在拼命研究如何做到这一点

public class Team {

    private Object arr;

    void createTeam(){
        String[] arr = new String[15];
    }
}


使用
new
创建阵列后,如果需要,请将其分配给
arr
参考 想在
Team
类中使用
arr

    public class Team {

        private String[] arr;

        void createTeam() {
            arr = new String[15];
        }
    }
,如果要从另一个类调用
createTeam
,并使用

    public class Team {

        public static String[] createTeam() {
            return new String[15];
        }
    }
其他类的用法

String[] arr = Team.createTeam();

让我澄清一下术语——这个类包含一个或多个方法;我认为您需要一个方法来在调用时创建数组

如果在创建数组后将其返回给调用者,则最有用;因为您不止一次地提到过这样做,所以来电者可以根据自己的意愿多次这样做:

public class Team {

    pubilc String[] createTeam() {
        String[] arr = new String[15];
        return arr;
    }
}
现在,其他一些代码可以做到这一点:

...
Team team = new Team();
String[] teamArray = team.createTeam();

teamArray已经创建并返回给调用者,无论它想要它做什么。请注意,在这种情况下,一旦
createTeam()
方法返回,团队对象中就不存在团队变量的副本。

实际上,如果您想从另一个类访问新创建的数组,您根本无法访问,因为字符串[]是私有属性,而包范围的方法返回的是空值

如果只需要为其他类创建字符串[],则不需要属性“arr”,还可以重载方法以创建所需大小的数组:

public class Team {

public static String[] createTeam(){ return new String[15]; }

public static String[] createTeam(int n){ return new String[n]; }

}
如果需要字符串[]在“Team”类中进行进一步操作,则应将其保持为私有,并使用getter从其他类访问它:

public class Team {

private String[] arr;

public void createTeam(){ this.arr = new String[15]; }

public String[] getArr() { return arr; }

}

如果您试图将字符串[]强制转换到arr属性中,则您的方法无法工作,因为Java将方法中的字符串[]arr视为局部变量而不是类属性,那么您应该在arr之前删除“String[]”。

当您执行此操作时,您可以使用默认值
Arrays.fill(arr,“deault value”)初始化数组为什么
私有对象arr和非
私有字符串[]arr?作为工厂方法,您可能希望使其保持静态,我绝对愿意;我没有在这个答案中提到它,因为OP在这方面似乎是新的,“静态”的概念是他们需要理解的另一件事。