创建一个创建数组的类

问题描述 投票:1回答:3

我正在尝试创建一个为项目创建数组的类,这意味着我一直在谋杀自己,如何做到这一点

public class Team {

    private Object arr;

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

java arrays class private upcasting
3个回答
1
投票

仅在使用new创建数组后,将其分配给arr引用要使用arr类中的Team

    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();

0
投票

让我弄清楚一些术语-class包含一个或多个methods;我认为您需要一种在调用时创建数组的方法。

如果在创建数组之后将其返回给调用者,这将是最有用的;由于您不止一次地谈论此操作,因此调用方可以根据需要多次执行此操作:

public class Team {

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

现在其他一些代码可以做到这一点:

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

和teamArray已创建,并返回给调用方任何所需的内容。请注意,在这种情况下,一旦createTeam()方法返回,Team对象中就不会存在team变量的副本。


0
投票

实际上,如果您想从另一个类访问新创建的数组,则根本无法,因为您的String []是一个私有属性,并且您的包范围方法确实返回一个void。

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

public class Team {

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

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

}

如果您需要String []在“ Team”类中进行进一步的操作,则应将其保留为私有,并使用getter从其他类中进行访问:

public class Team {

private String[] arr;

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

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

}

如果您尝试将String []转换为arr属性,则您的方法无效,因为Java将方法中的String [] arr视为本地变量而不是类属性,则应删除“ String []“到达之前。

© www.soinside.com 2019 - 2024. All rights reserved.