Пожалуйста, исправьте и заполните классы в вопросе, скопируйте их, как в редакторе, и убедитесь, что они выглядят правильно, используя предварительный просмотр. Я не понимаю, откуда взялись test
в print(test.arr[0]);
в классе B. Однако вы печатаете объекты, которые вы не инициализировали. Вот почему вы видите ноль.
Когда вы создаете A с A sun = new A();
, а затем печатаете его print(sun.arr[0]);
, вы никогда не запускали тест или не присваивали значение arr, например.
После редактированияисходные классы.
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;
}
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
}