2013-11-26 3 views
0

У меня есть следующий код:Доступ к переменным экземпляра другого класса из статического метода

public static boolean isRelated(Animal first, Animal second){ 
    boolean result=false; 
    if(first(parentA).equals(second(parentA))) 
     result=true; 

    return result; 
} 

в основном, мне нужно, чтобы иметь возможность получить доступ к родителю Переменная экземпляра, который находится в классе животных от статического метода ,

Я понимаю, что, чтобы получить доступ к переменным экземпляра в статическом методе, вам нужно создать объект, но у меня уже есть 2 принесли. (Родитель A и Родитель B)

Не могли бы вы, ребята, скажите мне, в чем проблема здесь есть?

+1

Вы имеете в виду 'first.parentA'? Вы должны просмотреть основной учебник по Java по классам и объектам. –

+0

lol Извините, я сделал это на начальном этапе, но позже начал возиться, но в любом случае это тоже не сработает. – ymc331

+3

Не пропустите. Изучите синтаксис и используйте его. –

ответ

0

Чтобы получить доступ к переменной экземпляра, вам необходимо использовать экземпляр. Вам не нужно создавать его каждый раз, когда вам это нужно, если у вас его есть.

И для вашего кода:

if(first.getParentA().equals(second.getParentA())) 

В этом случае вам нужно убедиться, чем first.getParentA() не null перед сравнением (или иначе вы получите NPE)

0
if(first(parentA).equals(second(parentA))) 

в основном, мне нужно, чтобы иметь возможность получить доступ к родителю Переменная экземпляра, который находится в классе животных от статического метода.

Это не правильный синтаксис для доступа к членам экземпляра

должен быть

if(first.parentA.equals(second.parentA)) 

Более использования сеттеров и добытчиками для доступа к данным, например, что

public class Animal { 
    private String parentA; 

// code 

    public String getParentA() { 
    return parentA; 
    } 

    public void setParentA(String parentA) { 
    this.parentA = parentA; 
    } 
} 

} 

Затем используйте строку if(first.getParentA().equals(second.getParentA()))

0

Статические методы создаются в область метода и является первой, которая будет создана. Переменные экземпляра создаются в куче после создания статических методов. Следовательно, непосредственный доступ к переменным экземпляра невозможен. Всегда используйте объект для доступа к таким переменным.

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