将字符串数组返回给其他 class(包括继承)并打印

Returning string array to other class(include inheritance) and print

我有一个问题 return 数组到其他 class 或继承 child class in java.

class一个

import java.util.Scanner;

 public class A {
  String [] month = new String[4];  
  Scanner sc = new Scanner(System.in);

 public String[] Select()
  {
        System.out.println("choose");   

        int pick=sc.nextInt();
        switch(pick)
     {
        case 1:
           month[0]="January";          
          break;
        case 2:
            month[0]="February";                
        break;
    case 3:
        month[0]="March";           
        break;
    case 4:             
        month[0]="April";   
        break;

    }
    return month;
}

}

class C

    public class C extends A{

     public void child_class() 
   {
        System.out.println(month[0]);
   }        

}

class B

public class B {

    A  select = new A ();
    public void normal_class()
    {       
        System.out.println(select.month[0]);
    }
 }

主要Class public class 主要 {

public static void main(String[] args) {

        A sun = new A();
        B moon = new B();
        C star = new C();

        System.out.println(sun.month[0]);           
        moon.normal_class(); //
        star.child_class();
        }

}

结果

null
null
null

我想return一个数组的结果到class或childclass。 如果我在 A class 中选择案例 1,我想从 classes

中得到结果 "January"

请更正并完成问题中的 classes,将它们复制到编辑器中,并使用预览确保它们看起来正确。 我不知道 class B 中的 print(test.arr[0]); 中的 test 是从哪里来的。 但是,您正在打印尚未初始化的对象。这就是为什么你看到 null.

当您使用 A sun = new A(); 创建 A 然后打印它 print(sun.arr[0]); 时,您从未 运行 测试或为 arr 赋值。

编辑原class后。

System.out.println(sun.month[0]); 正在访问 class A 中的 month 但由于您没有调用 Select 方法(应该以小写开头),您将永远不要用数据填充数组月份。

试试这个:

public class A {
  String [] month = new String[4];  

 public String[] select(int pick)
  {
        switch(pick)
     {
        case 1:
           month[0]="January";          
          break;
        case 2:
            month[0]="February";                
        break;
    case 3:
        month[0]="March";           
        break;
    case 4:             
        month[0]="April";   
        break;

    }
    return month;
}

public static void main(String[] args) {

    A sun = new A();
    B moon = new B();
    C star = new C();

    sun.select(1);
    System.out.println(sun.month[0]); //printing January
    moon.normal_class(); //you are not printing anything here
    star.child_class(); //you are not printing anything here
    }