为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

跃然一笑 2023-10-13 09:59:48
我在将数组返回到 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();        }}结果nullnullnull我想将数组的结果返回给类或子类。如果我在A类中选择案例1,我想从类中获取结果“January”
查看完整描述

1 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

请更正并完成问题中的类,将其复制到编辑器中,并确保使用预览时它们看起来正确。我不明白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

    }


查看完整回答
反对 回复 2023-10-13
  • 1 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信