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

我在将数组返回到 java 中的其他类或继承子类时遇到问题。


A级


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;

}

}


C级


    public class C extends A{


     public void child_class() 

   {

        System.out.println(month[0]);

   }        


}

B级


public class B {


    A  select = new A ();

    public void normal_class()

    {       

        System.out.println(select.month[0]);

    }

 }

主类 公共类 main {


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

我想将数组的结果返回给类或子类。如果我在A类中选择案例1,我想从类中获取结果“January”


跃然一笑
浏览 85回答 1
1回答

哔哔one

请更正并完成问题中的类,将其复制到编辑器中,并确保使用预览时它们看起来正确。我不明白B 类中的testinprint(test.arr[0]);来自哪里。但是,您正在打印尚未初始化的对象。这就是为什么你看到 null。例如,当您创建 AA sun = new A();然后打印它时,您从未运行过测试或为 arr 分配了值。print(sun.arr[0]);编辑原始类后。System.out.println(sun.month[0]);month正在类中访问A,但由于您没有调用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;}公共静态无效主(字符串[] 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    }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java