将字符串数组返回给其他 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
}
我有一个问题 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
}