2013-10-15 4 views
0

Я задаю вопрос о домашнем задании и не знаю, что не так с моим кодом. Вопрос: http://prntscr.com/1xe4gd.Как ссылаться на другой объект в Java?

Мой код до сих пор:

public class Person //This is the class 
{ 
    String firstName; 
    String familyName; 
    boolean isFemale; 
    String partner; 
} 

Мой метод до сих пор есть:

Person getAngelinaJolie() 
    { 
     Person person1 = new Person(); 
     person1.firstName = "Angelina"; 
     person1.familyName = "Jolie"; 
     person1.isFemale = false; 
     person1.partner.firstName = "Brad"; 
     person1.partner.familyName = "Pitt"; 
     return person1; 
    } 

Когда я компилирую, говорит об ошибке "не может найти символ - переменная ПгвЬЫате". Может ли кто-нибудь помочь мне в этом. Не уверен, почему он не может найти символ.

+2

Член «партнер» имеет тип String, а не Person. Поскольку тип String не имеет атрибута firstName, компилятор жалуется. Вы должны объявить «партнером» как Лицо для вашего варианта использования. – Vikdor

+0

Я думаю, что экземпляр Person вернулся, должен иметь isFemale set true too ... – NESPowerGlove

ответ

1

Вы определили в классе Person String partner;, но я полагаю, вы имеете в виду Person partner; тогда вы сможете установить его свойства после person1.partner = new Person(); конечно

здесь правильный код:

Person getAngelinaJolie() 
    { 
     Person person1 = new Person(); 
     person1.firstName = "Angelina"; 
     person1.familyName = "Jolie"; 
     person1.isFemale = true; 

     person1.partner = new Person(); 
     person1.partner.firstName = "Brad"; 
     person1.partner.familyName = "Pitt"; 
     person1.partner.isFemale = false; 

     person1.partner.partner = person1; 

     return person1; 
    } 
+0

@blueJavaMAN Никакое исключение обычно означает хорошие новости, не так ли? –

+0

@blueJavaMAN может быть, потому что вы havent заполнили все поля в партнере, также я полагаю, что Angelina isFemale = true, по крайней мере, поскольку я помню ее :) –

+0

Не могли бы вы показать нам полный результат? Я подозреваю, что «сообщение об исключении» - это просто часть вывода, и что есть что-то, что предоставляет дополнительную информацию о причине сбоя (например, «NullPointerException»). – ajb

0
public class Person //This is the class 
{ 
    String firstName; 
    String familyName; 
    boolean isFemale; 
    Person partner; 
} 

и тот же метод сейчас

Person getAngelinaJolie() 
    { 
     Person person1 = new Person(); 
     person1.firstName = "Angelina"; 
     person1.familyName = "Jolie"; 
     person1.isFemale = false; 
     person1.partner.firstName = "Brad"; 
     person1.partner.familyName = "Pitt"; 
     return person1; 
    } 

сейчас person.partner.firstname будет ссылаться на уже определенного партнера для лица в Лице

Смежные вопросы