Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OOP_02.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
278.09 Кб
Скачать

24.Аплети – можливості та обмеження, особливості життєвого циклу та використання

Апплет - это небольшая программа на языке Java, которая может выполнятся в окне браузера. Сам по себе апплет, в отличие от других java-программ, выполнятся не может - присутствие браузера тут обязательно.

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

С технической точки зрения апплеты представляют из себя потомков класса java.applet.Applet. Чтобы не писать такие длинные конструкции, обычно пакет java.applet просто импортируют:

import java.applet

ПРИМЕР:

import java.applet.*;

import java.awt.*;

public class FirstApplet extends Applet{

public void paint(Graphics g){

g.drawString("First Applet", 20, 20);

}

}

Теперь создайте в той же папке, где расположен файл FirstApplet.java, HTML-файл test.htm следующего содержания:

<html>

<head>

<title>FirstApplet</title>

</head>

<body>

<applet code="FirstApplet" width="100" height="100"></applet>

</body>

</html>

25. Перерахування(перечисления). Синтаксис, структура, основні методи та приклади використання

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

public enum MyColors {

Red,

Yellow,

Pink;

}

Объявляя enum мы неявно создаем класс производный от java.lang.Enum.

Элементы enum - это статически доступные экземпляры enum-класса. Их статическая доступность позволяет нам выполнять сравнение с помощью оператора сравнения ссылок .

enum Cat {

Leopard, Puma, Lion, Tiger, Manul

}

public void onClick(View v) {

Cat cat;

cat = Cat.Manul;

String result = "";

switch (cat) {

case Leopard:

result = "I'm a leopard";

break;

case Puma:

result = "I'm a puma";

break;

case Lion:

result = "Царь зверей";

break;

case Tiger:

result = "I'm a tiger";

break;

case Manul:

result = "Погладь кота, ...";

break;

}

textViewInfo.setText(result);

Метод values()

Автоматически предопределённый метод для перечисления values() возвращает массив, содержащий список констант перечисления.

Метод valueOf(String string)

Автоматически предопределённый метод для перечисления valueOf() возвращает константу перечисления, значение которой соответствует строке, переданной в параметре.

26. Модифікатори доступу. Ікапсюляція.

Основой инкапсуляции в Java является класс. Класс определяет данные и код некоторого набора объектов. Объект является экземпляром класса. Таким образом, класс - это логическая конструкция, а объект – физическая реальность.

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

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

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

Модификатор доступа

Область доступа

public

Без ограничений

private

Только из данного класса

protected

Из данного класса и его потомков

Без модификатора

Для всех классов данного пакета

private

Самый жесткий модификатор доступа - private. Он разрешает доступ к членам класса только из этого класса:

1 2 3 4 5 6 7 8 9 10 11

public class User {     private int age;//поле с модификатором private     public int getAge() {         return age;     }     public void setAge(int age) {         this.age = age;     } }

функции get и set, которые свободно могут обращаться к полю age. Теперь через них можно получить и задать значение переменной. Такой подход достаточно популярен при разработке программ, так как вы в этих функциях можете контролировать диапазон присваиваемых значений и корректно вернуть значение, в случае, если оно у вас явно не хранится или если оно не правильно.

Рассмотрим примеры использования класса:

1 2 3 4

User user = new User(); user.age = 18;//ошибка доступа user.setAge(-128); int age = user.getAge();

Если бы мы не обрабатывали значение поля age в get и set, то мы получили отрицательный возраст, который мог бы привести к неправильной работе программы. Так как age имеет модификатор видимости private, то мы не можем явно установить значение перемение или получить ее значение. Использование get-теров и set-ов желательно при создании переменных в классе, так как это единственный способ доступа к переменным private.

protected

Данный модификатор доступа разрешает использовать переменные в классах наследниках. Допустим у нас есть тот же класс пользователь:

1 2 3

public class User {     protected int age; }

И мы хотим, чтобы класс Student, который является наследником класса User, умел возвращать номер группы на основе возраста:

1 2 3 4 5

public class Student extends User{     public int getGroup(){         return (age - 18) * 100;     } }

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

1 2 3 4 5

<div id="subtitle">internal (default)</div> Данный модификатор видимости используется как модификатор доступа по умолчанию: public class User {     int age; }

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

public

позволяет иметь доступ откуда угодно. Поэтому методы get и set и прочие функции, которые должен вызывать пользователь объекта делают public. Функции, которые должны быть использованы только как вспомогательные для класса и все поля делают private, кроме некоторых случаев, когда их делают protected.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]