Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Ощение между подклассами.


Автор: ShurikA 16.12.2006, 19:36
есть такая иерархия:
Код

class public A{
...
...
private ClassB B;
private ClassC C;
...
...
}


возможна ли связь между В и С не передавая им предварительно указатели друг на друга?
и как?

Автор: powerOn 16.12.2006, 19:49
Цитата(ShurikA @  16.12.2006,  19:36 Найти цитируемый пост)
возможна ли связь между В и С не передавая им предварительно указатели друг на друга?

Нет, не возможна.... Это всего лишь 2 поля класса, какая между ними может быть связь (если конечно эти классы не унаследованны от одного предка, который имеет статические поля....)? А зачем это вообще нужно?

Автор: ShurikA 16.12.2006, 20:03
Цитата(powerOn @  16.12.2006,  18:49 Найти цитируемый пост)
А зачем это вообще нужно? 

Допустим что ClassB это JLabel, а ClassC это JPanel с кнопками.
При это при нажание на кнопки должно что то происходить в обьекте ClassB.

Автор: powerOn 16.12.2006, 20:11
Пусть тогда ClassC делигирует свои методы ClassA. Последний знает обо всех объектах. 
Например, можно сделать так:

Код

public class NewJFrame extends javax.swing.JFrame {
    public NewJFrame() {
        initComponents();
    }

    private void initComponents() {
        jButton1 = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();

        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
// Делегируем операцию!                
                      jButton1ActionPerformed(evt);
            }
        });
...
    }

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        jLabel1.setText("Превед!");
    }

...
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    
}


Автор: ShurikA 16.12.2006, 20:16
но в любом случае нужно зодавать полную цепочку указателей, либо что бы самый верхний знал обо всех контролях, либо контроли должны иметь возможность обратиться к самому верхниму классу?

Автор: powerOn 16.12.2006, 20:30
Цитата(ShurikA @  16.12.2006,  20:16 Найти цитируемый пост)
но в любом случае нужно зодавать полную цепочку указателей, либо что бы самый верхний знал обо всех контролях, либо контроли должны иметь возможность обратиться к самому верхниму классу? 


В любом случае должна быть связь между объектами. Хоть какая-нибудь.  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)