2013-03-27 3 views
1

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

Test.java

package testme; 

public class Test { 
    int a = 7;  

    public int getA() { return a; } 

    public static void main(String args[]) { 
     Test test = new Test(); 
    }  
} 

Testit.java

package testme; 

public class Testit {  
    Test t;  
    Testit() { 
     t = new Test(); 
     System.out.println(t.getA()); 
    } 
} 
+0

Что вы ждете от этого кода? И почему вы используете 'SwingUtilities.invokeLater' для создания экземпляра класса без GUI? –

+0

Вы хотите создать Testit в main вместо теста? –

ответ

1

Заменить

Test test = new Test(); 

с

Testit test = new Testit(); 
+0

Извините, ребята, я исправил введенный мной код. ТГМ, ваше предложение сработало. Спасибо. – user2143292

+0

Теперь, если я создаю gui, используя первый файл с основным классом, как бы я обрабатывал чтение данных из этого класса в другой? – user2143292

+0

@ user2143292 Передача данных в конструкторе. –

0

Ваши определения классов выглядят нормально. Единственная проблема - ваш главный никогда не запускает экземпляр Testit.

Testit успешно делает t = новый тест() ;. Таким образом, теперь он имеет доступ к методу getA().

То же самое не так, наоборот. ваш основной создает test = new Test(), но не ссылается на объект TestIt.

попробовать положить это в вашем главном

Testit test = new Testit(); 

вы должны увидеть prinout А (7)

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