Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Виды модификаторов доступа в Java.

Читайте также:
  1. Виртуальная точка доступа Wi-Fi силами Windows 7
  2. Выбор оперативного доступа
  3. ГЛАЗНЫЕ СИГНАЛЫ ДОСТУПА
  4. ДРУГИЕ СИГНАЛЫ ДОСТУПА
  5. Зоны доступа к телу
  6. И последний событийный класс AWT — java.awt. event. WindowListener. Класс содержит события, возникающие при работе с окнами.
  7. Как создать точку доступа WiFi на Андроид
  8. Какими бывают комментарии в Java.
  9. Класс java.awt.event.ComponentListenerСОДерЖИТ объявления четырех

Модификаторы доступа – это зарезервированные слова, которые определяют область видимости/доступа полей или же методов класса. Существуют четыре спецификатора доступа: public, private, protected и default или no modifier:

- public член класса может быть доступен отовсюду: внутри пакета, вне пакета, в подклассе, а также в любом классе, не являющемся подклассом.

- Член класса, который объявлен, как private может быть доступен только внутри своего класса, но не за пределами этого класса.

- protected член класса доступен из любого класса в этом же пакете, а также из подкласса, который расположен вне данного пакета.

- Если не задан ни один из спецификаторов доступа, то член будет доступен из любого класса в этом же пакете, но не за пределами данного пакета.

 

17. Что такое перегруженные и переопределенные методы?

Перегружаемыми методами называется группа методов с одинаковым именем, но различными списками параметров. Перегрузка методов в Java - это один из способов реализации полиморфизма.

 

Пример:

class Peregruzka_metoda {

void test_1 () {

System.out.println("Параметры отсутствуют");}

// Проверка перегрузки на наличие одного целочисленного параметра.

void test_1(int m) {

System.out.println("m: " + m);

}

// Проверка перегрузки на наличие двух целочисленных параметров.

void test_1(int m, int n) {

System.out.println ("m и n: " + m + " " + n);

}

// Проверка перегрузки на наличие параметра типа double

double test_1(double m) {

System.out.println("double m: " + m);

return m*m;

}

}

class Overload {

public static void main(String args[]) {

Peregruzka_metoda ob = new Peregruzka_metoda();

double result;

// вызов всех версий метода test_1()

ob.test_1 ();

ob.test_1 (10);

ob.test_1 (10, 20);

result = ob.test_1(123.25);

System.out.println("Результат ob.test_1(123.25): " + result);

}

}

 

Результат запуска программы:

Параметры отсутствуют

m: 10

m и n: 10 20

double m: 123.25

Результат ob.test_1(123.25): 15190.5625

 

Метод test () перегружается четыре раза. Первая версия не принимает никаких параметров, вторая принимает один целочисленный параметр, третья — два целочисленных параметра, а четвертая — один параметр типа double. То, что четвертая версия метода test () возвращает также значение, не имеет никакого значения для перегрузки, поскольку возвращаемый тип никак не влияет на разрешение перегрузки.

 

Переопределением метода называется объявление в подклассе метода, у которого имя, тип и список параметров, в точности совпадают с соответствующими атрибутами метода, ранее объявленного в суперклассе. При переопределении метода использование модификаторов доступа должно удовлетворять следующим условиям:

- если переопределяемый метод суперкласса не содержит ни одного из модификаторов доступа public, protected или private, то переопределяющий метод не должен иметь модификатора private.

- если переопределяемый метод суперкласса имеет модификатор доступа protected, то переопределяющий метод должен иметь модификатор доступа public или protected.

- если переопределяемый метод суперкласса имеет модификатор доступа public, то переопределяющий метод должен также иметь модификатор доступа public.

 

Тип возвращаемого значения переопределяющего метода должен совпадать или преобразовываться присвоением к типу возвращаемого значения переопределяемого метода.

Если класс содержит переопределяющий метод, то переопределенный метод можно вызвать только с квалификацией ссылки ключевым словом super или именем суперкласса (для статических членов).

 

Пример:

class A {

public void Metod1() { }

public static void Metod2() { }

}

class B extends A {

public Metod1() { }

...

Metod1(); // Вызов метода из класса B

super.Metod1(); // Вызов метода из класса A

A.Metod2(); // Вызов статического метода из класса A

}

 

18. В чем суть полиморфизма?

Полиморфизм (в языках программирования) — возможность объектов с одинаковой спецификацией иметь различную реализацию. Язык программирования поддерживает полиморфизм, если классы с одинаковой спецификацией могут иметь различную реализацию — например, реализация класса может быть изменена в процессе наследования.

Полиморфизм — один из четырёх важнейших механизмов объектно-ориентированного программирования (наряду с абстракцией, инкапсуляцией и наследованием).

Полиморфизм позволяет писать более абстрактные программы и повысить коэффициент повторного использования кода. Общие свойства объектов объединяются в систему, которую могут называть по-разному — интерфейс, класс. Общность имеет внешнее и внутреннее выражение:

- внешняя общность проявляется как одинаковый набор методов с одинаковыми именами и сигнатурами (именем методов и типами аргументов и их количеством);

- внутренняя общность — одинаковая функциональность методов. Возможность приписывать разную функциональность одному методу (функции, операции) называется перегрузкой метода (перегрузкой функций, перегрузкой операций).

 

В объектно-ориентированных языках класс является абстрактным типом данных.

Полиморфизм реализуется с помощью наследования классов и виртуальных функций. Класс-потомок наследует сигнатуры методов класса-родителя, а реализация, в результате переопределения метода, этих методов может быть другой, соответствующей специфике класса-потомка.

Другие функции могут работать с объектом класса-родителя, но при этом вместо него во время исполнения будет подставляться один из классов-потомков. Это называется поздним связыванием.

Класс-потомок сам может быть родителем.

 

19. В чем суть инкапсуляции?

Инкапсуляция — свойство языка программирования, позволяющее пользователю не задумываться о сложности реализации используемого программного компонента (то, что у него внутри), а взаимодействовать с ним посредством предоставляемого интерфейса (публичных методов и членов), а также объединить и защитить жизненно важные для компонента данные. При этом пользователю предоставляется только спецификация (интерфейс) объекта.

Пользователь может взаимодействовать с объектом только через этот интерфейс. Реализуется с помощью ключевого слова: public.

Пользователь не может использовать закрытые данные и методы. Реализуется с помощью ключевых слов: private, protected.

class A{

private int a;

private int b;

private void DoSomething() //скрытый метод

{//actions

}

public int ReturnSomething() //открытый интерфейс

{return a;}

}

 

20. В чем суть наследования?

Наследование — механизм объектно-ориентированного программирования, позволяющий описать новый класс на основе уже существующего (родительского), при этом свойства и функциональность родительского класса заимствуются новым классом. Другими словами, класс-наследник реализует спецификацию уже существующего класса (базовый класс). Это позволяет обращаться с объектами класса-наследника точно так же, как с объектами базового класса.

Класс, от которого произошло наследование, называется базовым или родительским (англ. base class). Классы, которые произошли от базового, называются потомками, наследниками или производными классами (англ. derived class).

 

В некоторых языках используются абстрактные классы. Абстрактный класс — это класс, содержащий хотя бы один абстрактный метод, он описан в программе, имеет поля, методы и не может использоваться для непосредственного создания объекта. То есть от абстрактного класса можно только наследовать. Объекты создаются только на основе производных классов, наследованных от абстрактного.

 

В ряде языков программирования все классы явно или неявно наследуются от некого базового класса. В java – это java.lang.Object

 

21. Что такое конструктор, для чего нужен?

Конструктор - специальные методы для инициализации нового экземпляра класса.

Конструктор метода класса будет иметь такое же имя, что и класс.

Пример ниже показывает класс и имя конструктора круга:

public class Circle {

public int x = 0;

public int y = 0;

public int radius = 0;

public Circle(int x, int y, int radius) {

this.x = x;

this.y = y;

this.radius = radius;

}

}

 

22. Для чего нужно ключевое слово super?

Подкласс может вызывать конструктор, определенный его суперклассом, с помощью следующей формы ключевого слова super:

super{список_аргументов);

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

 

23. Что такое пакет? Принцип работы с пакетами. (п.16)

Библиотеки кода

- Библиотека состоит из группы связанных друг с другом файлов.

Например: библиотека math (математическая) содержит функции или подпрограммы, которые используются в математических вычислениях.

- Основная идея, заложенная в основе использования библиотек кода, состоит в отборе и выделении в отдельную группу файлов или функций на основании их функциональных свойств.

- Использование этого предварительно подготовленного кода позволяет существенно сократить время кодирования.

- В языке C библиотеки известны, как библиотеки функций, в языке C++ - библиотеки классов, а в языке Java – это пакеты (packages).

 

Создание пакетов в языке Java

- В языке Java пакет является объединением классов, интерфейсов и субпакетов.

Например: пакет java.awt содержит субпакет с именем event.

- Пакет в Java может быть создан путём включения инструкции package, как самой первой инструкции в Java-программе.

- Синтаксис определения пакета:




Дата добавления: 2015-09-11; просмотров: 33 | Поможем написать вашу работу | Нарушение авторских прав

Апплеты | Создание HTML-страницы для вывода апплета | Class First | Какими бывают комментарии в Java. | FlowLayout, BoxLayout, BorderLayout, CardLayout, GridLayout, GridBagLayout, SpringLayout, null | Назвать модели обработки исключений и написать для каждой из них шаблон кода. | Перечислите состояния потоков. | Класс String | Класс Runtime | Класс TreeSet |


lektsii.net - Лекции.Нет - 2014-2024 год. (0.012 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав