Программирование мобильных телефонов на Java


Программирование мобильных телефонов

  • Введение
  • Глава 1. Устройство мобильных телефонов
  • Глава 2. Платформа Java 2 Micro Edition
  • Глава 3. Средства разработки мобильных приложений
  • Глава 4. Телефонные эмуляторы
  • Глава 5. Механизм работы приложений Java 2 ME
  • Глава 6. Классы пользовательского интерфейса
  • Глава 7. Программирование графики
  • Глава 8. Техника создания игр
  • Глава 9. Мобильная мультимедиа-библиотека
  • Заключение
  • Приложение 1. Основы языка Java
  • Приложение 2. Справочник по Java 2 Micro Edition

     

    Программирование на Java

  • Введение
  • Глава 1. Встроенные типы данных, операции над ними
  • Глава 2. Объектно-ориентированное программирование в Java
  • Глава 3. Пакеты и интерфейсы
  • Глава 4. Классы-оболочки
  • Глава 5. Работа со строками
  • Глава 6. Классы-коллекции
  • Глава 7. Классы-утилиты
  • Глава 8. Принципы построения графического интерфейса
  • Глава 9. Графические примитивы
  • Глава 10. Основные компоненты
  • Глава 11. Размещение компонентов
  • Глава 12. Обработка событий
  • Глава 13. Создание меню
  • Глава 14. Апплеты
  • Глава 15. Изображения и звук
  • Глава 16. Обработка исключительных ситуаций
  • Глава 17. Подпроцессы
  • Глава 18. Потоки ввода/вывода
  • Глава 19. Сетевые средства Java
  • Приложение. Развитие Java

  • 

    3fb01dc2


     

     

    1.10.1. Конструктор суперкласса



    В рассмотренном примере по созданию суперкласса и подкласса Nokia, умышленно использовался конструктор по умолчанию. Ситуация с конструкторами суперклассов требует отдельного внимания.

    Когда в программе происходит вызов конструктора, то вызов осуществляется согласно всей иерархии наследования. Первым вызывается конструктор самого первого суперкласса и опускается ниже по все иерархии наследования. Но иногда необходимо обратиться к ближайшему конструктору суперкласса и тогда используется ключевое слово super. Рассмотрим небольшой пример.

    //   суперкласс  Nokia
    
    class  Nokia
    
    {
    
    // конструктор суперкласса Nokia
    
    // тело класса Nokia }
    
    // подкласс NokiaSeries60 class NokiaSeries60 
    
    extends Nokia
    
     {
    
    // конструктор подкласса NokiaSeries60
    
    NokiaSeriesGO(int a, int b) ;
    
    // тело подкласса NokiaSeries60
    
    }
    
    // подкласс Nokia6600 для суперкласса NokiaeSeries60 
    
    class Nokia6600
    
    extends NokiaSeries60
    
    {
    
    // конструктор подкласса Nokia6600
    
    Nokia6600 (short f, short b, short c)
    
    {
    
    super (a, b)
    
    // тело конструктора
    
    }
    
    }
    
    // подкласс Nokia6100 для суперкласса NokiaeSeries60
    
    class Nokia6100 extends NokiaeSeries60
    
    {
    
    //конструктор подкласса Nokia6100
    
    Nokia6100 (char a, char b)
    
    {
    
    super (a, b)
    
    // тело конструктора
    
    }
    
    // тело подкласса Nokia6100
    
    }


    Если вы желаете воспользоваться конструктором ближайшего суперкласса, в конструкторе подкласса первым должно идти ключевое слово super с параметрами для необходимого конструктора суперкласса. Ключевое слово super имеет двойную смысловую нагрузку и может использоваться не только для вызова конструктора суперкласса. Второй вариант использования ключевого слова super, заключается в доступе к невидимому члену суперкласса. Сейчас мы коснулись  так называемого вопроса видимости. Вы не задумывались над тем, что будет, если методы или переменные в суперклассе и подклассе будут совпадать по именам? Дело в том, что если подкласс будет иметь одинаковые названия любых членов класса, то он будет использовать только свои члены класса. Все данные суперкласса окажутся недоступными или невидимыми в силу совпадения названий. Для этих целей может быть использовано слoво super. Посмотрите на пример иллюстрирующий способ его использования:

    // суперкласс Siemens
    
    class Siemens
    
    {
    
    int  a,   b;
    
    }
    
    // подкласс SiemensMC62
    
     class SiemensMC62 extends Siemens
    
    {
    
    int a, b;
    
    // конструктор подкласса SiemensMC62
    
    SiemensMC62 (int c, int d)
    
    {
    
    super.a = с;  
    
    // для а в суперклассе
    
    super.b = d;  
    
    // для b в суперклассе a = с;  
    
    // для а подкласса b = d;  
    
    // для b подкласса
    
    }
    
    }    


    Использование ключевого слова super очень похоже на обращение объекта класса к методам и переменным. Когда необходимо получить доступ к членам суперкласса, имеющим одинаковые названия, воспользуйтесь ключевым словом super или поступайте проще - давайте различные имена для членов суперкласса и подкласса.

    В языке Java существует еще одно ключевое слово this, выполняющее похожие действия. При помощи этого ключевого слова можно произвести вызов любого другого конструктора того же класса либо использовать для указания ссылки на параметр, отсутствующий в конструкторе класса.

    Подводя итог темы наследования необходимо упомянуть о классе Object. В языке Java все классы наследуются от большого суперкласса Objec. Это происходит автоматически и беспокоится о явном наследовании при помощи ключевого слова extends не нужно.
     
    -
    



    Copyright © vzlom-1.ru 2020-2023