需要调用一个数组并在另一个类中打印它

时间:2018-11-07 00:00:23

标签: java

所以我有一个库存程序,其中的符号存储在数组中,我需要将该数组调用到另一个类中并打印出来。这是我的代码和数组代码。

abstract class stockArray
{

   String stocks[];

   String stockSymbols[] ={ "SMG", "APL", "GE", "TOY","SUB","GM","LG","VZ","JP","BTN"};

}

这是我需要调用并打印出我的Switch case语句的第1种情况的代码。我如何将该数组调用到该位置(情况1)并打印该数组的内容?谢谢

 public class stockProgram  
 {

    public static void main(String[] args) 
     {

       String s;

      Scanner sc= new Scanner(System.in);
      Scanner input = new Scanner(System.in);
      Scanner dec = new Scanner(System.in);       

    System.out.println("Welcome to the stock tracker Program,");

    System.out.println("What would you like to do?");

    System.out.println("***MENU OPTIONS***");

    System.out.println("1. See a list of stocks");
    System.out.println("2. Buy stocks");
    System.out.println("3. Sell Stock Holdings.");
    System.out.println("4. Search Stock listings");
    System.out.println("5. Exit Program");

    System.out.println(" Please Enter an option");        

    int op = sc.nextInt();
        switch(op)
    {


      case 1: System.out.println("---Stock Holdings List---");
              System.out.println("These are the current stocks avaliable to purchase in this program.");

     break;

3 个答案:

答案 0 :(得分:1)

首先,请遵循命名约定-类名以大写字母开头,因此将stockArray更改为StockArray

访问该数组的一种方法是像这样使它static:-

static final String stockSymbols[] ={ "SMG", "APL", "GE", "TOY","SUB","GM","LG","VZ","JP","BTN"};

,然后在您的case语句中使用此代码:-

String symbols[] = StockArray.stockSymbols;
Arrays.stream(symbols).forEach(System.out::println);

或者,如果您不想使其成为静态,则可以创建一个匿名内部类:-

String symbols[] = new StockArray() {}.stockSymbols;
Arrays.stream(symbols).forEach(System.out::println);

请注意,我只是将该数组存储在另一个变量symbols中,仅用于演示目的,您不需要这样做。

答案 1 :(得分:0)

定义一个扩展抽象类stockArray的类:

class StockArraySubclass extends stockArray {
}

StockArraySubclass类的切换情况下使用stockProgram

StockArraySubclass st = new StockArraySubclass();
System.out.println(Arrays.toString(st.stockSymbols));

这将打印:[SMG, APL, GE, TOY, SUB, GM, LG, VZ, JP, BTN]

答案 2 :(得分:-1)

首先 您的stockArray类是抽象的(更好的类名称以大写字母开头,即StockArray),并且您知道抽象类不能是实例。 因此,您必须做出决定,再创建另一个类,该类扩展您的抽象类(stockArray)或使您的抽象类成为普通类。 那么您可以创建一个实例

,您只需在主要方法中使用

public class stockArray
   {

       String stocks[];

       String stockSymbols[] ={ "SMG", "APL", "GE","TOY","SUB","GM","LG","VZ","JP","BTN"};

       }


 public class stockProgram  

{

public static void main(String[] args) 
 {

   String s;

  Scanner sc= new Scanner(System.in);
  Scanner input = new Scanner(System.in);
  Scanner dec = new Scanner(System.in);   
stockArray stockArr = new stockArray();    

System.out.println("Welcome to the stock tracker Program,");

System.out.println("What would you like to do?");

System.out.println("***MENU OPTIONS***");

System.out.println("1. See a list of stocks");
System.out.println("2. Buy stocks");
System.out.println("3. Sell Stock Holdings.");
System.out.println("4. Search Stock listings");
System.out.println("5. Exit Program");

System.out.println(" Please Enter an option");        

int op = sc.nextInt();
    switch(op)
{


  case 1: 
          forEach(String str : stockArr.stockSymbols){
          System.out.println(str);
    }
          System.out.println("These are the current stocks avaliable to purchase in this program.");

 break;