2013-02-11 2 views
0

У меня есть проблема при вызове переменной другой class.Lets сказать, что мы имеем class1 и class2 и class2 имеет метод, как:Как вызвать переменную другого класса.

public Class2{ 

public void method2 (Element ele, Grammar utterance, String user) { 

String speech =................ 

     } 
    } 

И моя цель получает эту «речь» переменной, и передавая ее class1 , Любые идеи о том, как это сделать?

ответ

0

-Declare перед методом: публичные статических Струнных речей -Initialize в методе или из: речей = «привет» -Call из другого класса (статический сфера): Class1.speech

+0

, но проблема в том, что им не разрешено ничего менять (для exp. From void to public или как вы делали его статичным) в текущем коде я могу только добавить sth. Потому что, когда я меняю sth, тогда получается так много кодов и мне нужно решение, которое не модифицирует код, а добавляет некоторые строки кодов !!! И эта строковая речь определяется внутри метода класса2, поэтому это локальная переменная, и я не знаю, как ее достичь ... – user2052015

+0

Кстати, когда я делаю это, как сказал, тогда он работает отлично, спасибо много, но я не уверен, что меня попросили найти результат с некоторыми изменениями в коде !!! – user2052015

+0

Также вы можете вернуть значение речи (String) вместо void или передать речью в качестве параметра метода –

0

Вы можете изменить метод void2 (...) на общедоступный метод String2 (...) и обратную речь. Тогда в вашем первом классе у вас есть экземпляр класса2 и вызов класса2.method2 (...) даст классу 1 речевую переменную

+0

но проблема им не разрешено изменять что-либо (например, от void до public) в текущем коде, я могу только добавить sth. Поскольку, когда я меняю sth, тогда получается так много кодов, и мне нужно решение, которое не изменяет код, а только добавляет некоторые строки кодов !!! – user2052015

0

Вам просто нужно иметь экземпляр класса 2 в вашем другом классе1, поэтому пример будет :

Class1 mySpeech = new Class1(); 

Теперь объект, который имеет доступ к mySpeech может получить доступ к переменной строки, содержащейся в речи является публичной переменной.

mySpeech.speech 

Но это хорошая практика, чтобы создать геттер методу/сеттер для этого, которые могут быть созданы с помощью затмения ярлыка:

Sources->Generate Getters and Setters 

Также при именовании использовать класс капитала для первой буквы и призывают Если вы назвали класс, назовите его Class1 или ClassOne.

0

Вы должны будете иметь какую-то публичную видимость в объекте, дающем строку. Затем либо передайте строку из первого объекта во вторую, либо передайте объект по ссылке во второй объект (менее рекомендуется).

public FirstClass { 
    private String speech = "I am the first object!"; 

    public String getSpeech() { 
     return speech; 
    } 
} 

public SecondClass { 
    private string speechCopy; 

    public void takeSpeech(string speechCopy) { 
     this.speechCopy = speechCopy + " (not really, I'm a copy!)"; 
    } 
} 

Отсюда вам просто нужно вызвать методы, чтобы вызвать нужное поведение. Вы можете оставить код таким, какой он есть, но добавьте методы get/set к каждому объекту, чтобы им можно было передавать переменные и ссылки.

+0

, но проблема в том, что им не разрешено ничего менять (для exp. From void to public или как вы сделали для частного) в текущем коде я могу только добавить sth.Because, когда я меняю sth, тогда так много кодов получают от этого и Мне нужно решение, которое не изменяет код, но добавляет некоторые строки кодов !!! И эта строковая речь определена внутри метода класса2, поэтому это локальная переменная, и я не знаю, как ее достичь ... – user2052015

+0

Решение, которое я предоставил, было общим. Учитывая предоставленный вами код, вы все равно можете добавить метод к объекту, который возвращает значение строки, не добавляя ничего в существующий код. Для вашего примера добавьте метод getSpeech() к вашему классу 2 и просто получите «обратную речь»; внутри метода. – winglerw28

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