2015-11-09 3 views
0
package com.java.zha; 

public class Person{ 

    private String name; 

    public Person(){ 
    } 

    public Person(String name1){ 
     this.name=name1; 
    } 

    public void printkk(){ 
     for (int i=0; i<3;i++){ 
      System.out.println(Adult[i].name);/*the prompt message said that" the Adult    can not be resolved as an variant.*/ 
     } 
    } 

    public static void main(String[] args){ 
     Person[] Adult= new Person[3]; 
     Adult[0]=new Person("zhangbin"); 
     Adult[1]=new Person("zhangchangqing"); 
     Adult[2]=new Person("nana"); 

     System.out.println(Adult[2].name); 
     Adult[1].printkk(); 
    } 
} 

PS: Я создал объект Adult и метод printkk(), который использовался для печати всего имени члена массива Adult. Но это дает мне ошибку. Поэтому я прошу помощи у ваших ребят. Я только начинаю кодировать, пожалуйста, ответьте на него подробно. заранее спасибо!Почему объект «Взрослый» не может быть распечатан?

+2

Итак, какая ошибка? Где в коде есть ошибка? – phflack

+5

Потому что 'Adult' видна только для метода' main() '. Пожалуйста, прочитайте о области переменных ... – Codebender

+0

@Codebender Итак, как переписать метод для выполнения одной и той же задачи? – allen

ответ

1
  1. Вы пытаетесь получить доступ к частному полю, изменять private String name; к public String name; или добавить метод getName(), так что вы можете распечатать имя с System.out.println(Adult[2].name); или System.out.println(Adult[2].getName();.
  2. Ваш метод printkk() пытается распечатать несуществующий массив Adult. Вам нужно будет передать его в качестве аргумента метода, поэтому изменить public void printkk() к public void printkk(Person[] Adult), а затем изменить Adult[1].printkk(); к Adult[1].printkk(Adult);

Это, вероятно, самый простой способ, чтобы получить код для работы, но было бы лучше отбросить то, что у вас есть, и переписать большую часть его.