Обращение класса к вызвавшему классу
От: punk4  
Дата: 23.08.05 11:24
Оценка:
Только не пинайте сильно, только начинаю расбираться с Java

Допустим что есть:
class classA {
 
 String d;
 void c() {
   d = "Переменная";
   classB b = new classB();
 }
}

class classB {

 classB() {
  // как здесь обратиться к classA.d; 
  // и как вообще можно работать с классом который вызвал.......
 
 };
}
Re: Обращение класса к вызвавшему классу
От: dimok@  
Дата: 23.08.05 11:30
Оценка:
Можно так:

class classA {
 
 String d;
 void c() {
   d = "Переменная";
   classB b = new classB(this);
 }
}

class classB {

classB(classA a) {
 if(a!=null) {
  String s=a.d;
  ...
 }
}
}
Re: Обращение класса к вызвавшему классу
От: Blazkowicz Россия  
Дата: 23.08.05 11:31
Оценка:
Здравствуйте, punk4, Вы писали:

P>Только не пинайте сильно, только начинаю расбираться с Java


P>Допустим что есть:

P>
P>class classA {
 
P> String d;
P> void c() {
P>   d = "Переменная";
P>   classB b = new classB();
P> }
P>}

P>class classB {

P> classB() {
P>  // как здесь обратиться к classA.d; 
P>  // и как вообще можно работать с классом который вызвал....... 
P> };
P>}
P>


Один вариант, это передавать параметром.

class classA {
 
 String d;
 void c() {
   d = "Переменная";
   classB b = new classB(this);
 }
}

class classB {

 classB(classA a) {
       System.out.println(a.d);
  // как здесь обратиться к classA.d; 
  // и как вообще можно работать с классом который вызвал....... 
 };
}


Если таких classA может быть несколько разных классов, тогда для них создаётся общий интерфейс.
Есть ещё и ущербный путь, через закрытое API Sun узнать кто вызвал метод ли конструктор. Но это чревато.
Re[2]: Обращение класса к вызвавшему классу
От: punk4  
Дата: 23.08.05 12:15
Оценка:
B>Один вариант, это передавать параметром.

B>
B>class classA {
 
B> String d;
B> void c() {
B>   d = "Переменная";
B>   classB b = new classB(this);
B> }
B>}

B>class classB {

B> classB(classA a) {
B>       System.out.println(a.d);
B>  // как здесь обратиться к classA.d; 
B>  // и как вообще можно работать с классом который вызвал....... 
B> };
B>}
B>


B>Если таких classA может быть несколько разных классов, тогда для них создаётся общий интерфейс.

B>Есть ещё и ущербный путь, через закрытое API Sun узнать кто вызвал метод ли конструктор. Но это чревато.

Списибо. Помогло...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.