Developer от Бога

DV

четверг, 6 июля 2017 г.

Java. Наследование, доступ к переменным класса

С пониманием наследования в Java обычно трудностей нет, объект наследующий некоторый класс, хоть и не явно но имеет все тоже самое + свои какие то элементы:




  1. public class A {
  2. int x = 1;
  3. double y = 2.645;
  4. String name = "name";
  5. }
  6. public class B extends A {
  7. int arg = 9;
  8. public static void B(){
  9. System.out.println(x);
  10. System.out.println(y);
  11. System.out.println(name);
  12. System.out.println(arg);
  13. }
  14. }
  15. //......................
  16. //.......Вывод программы
  17. //......................

1
2.645
name
9


Как видно с программы, при обращении к переменным: x, y, name, они выводятся как присущие классу B. B клас унаследовал все переменные от класса A и имеет свою собственную переменную int arg.
Часто приходится работать с классами разных библиотек. Как уже упоминалось, обьекты в Java не имеют доступа к переменным других обьектов если те находятся в разных пакетах. Поэтому если в программе предусмотрен обмен private переменными между обьектами из разных пакетов, в классах этих обьектов, должны быть методы которые возвращают значения переменных обьектов, по умолчанию все созданые переменные установлены как private :


  1. public class A {
  2. int a=9;
  3. public int return_arg(){
  4. return a;
  5. }
  6. }
  7. public class B {
  8. int a=6;
  9. public int return_arg(){
  10. return a;
  11. }
  12. }
  13. public class example {
  14. public static void main(String[] args){
  15. A a = new A();// a.a = 9;
  16. B b = new B();b.a=6;
  17. a.a=b.return_arg();
  18. System.out.println(a.a);
  19. }
  20. //......Результат программы....
  21. 6
  22. //.............................
  23. a.a=b.a;// Ошибка программы, нужно установить в классе b : public a;

Комментариев нет:

Отправить комментарий