- •Основы объектно-ориентированного программирования
- •Оглавление
- •Тема 1. Введение в предмет и содержание дисциплины 4
- •Теоретический раздел
- •Тема 1. Введение в предмет и содержание дисциплины
- •Особенности Java
- •Установка Java в переменных окружениях
- •Некоторые из особенностей элементов Java
- •Символы, строки и идентификаторы
- •Комментарии
- •Ключевые слова
- •Литералы
- •Разделители
- •Операции
- •Основные приложения Java
- •Метод update()
- •Требование перерисовки
- •Тема 3. Введение в классы java. Методы и классы. Классы и наследование в java. Пакеты и интерфейсы Введение в классы Java
- •Синтаксис определения экземпляра класса
- •Модификаторы класса
- •Конструкторы
- •Ограничение доступа к элементам класса
- •Статические переменные и методы
- •Абстрактные методы
- •Методы final
- •Область видимости переменных
- •Переменные this и super
- •Тема 4. Основы ввода/вывода. Работа со строковыми данными Работа со строками
- •Потоки ввода-вывода информации
- •Байтовые и символьные потоки
- •Классы байтовых потоков
- •Классы символьных потоков
- •Предопределённые потоки
- •Тема 5. Работа с файлами Классы FileInputStream и FileOutputStream
- •Класс File
- •Класс RandomAccessFile
- •Тема 6. Методы и средства обработки исключений Методы и средства обработки исключений
- •Тема 7. Разработка апплетов, работа с графикой
- •Пакет awt
- •Класс Applet
- •Инициализация и завершение апплета
- •Запуск апплетов
- •Рисование линий в апплете
- •Рисование прямоугольников в апплете
- •Рисование эллипсов и кругов в апплете
- •Рисование дуг в апплете
- •Работа с цветом
- •Тема 8. Многопоточное программирование Интерфейсы в Java
- •Многопоточное программирование
- •Организация потоков
- •Создание нового потока
- •Тема 9. Разработка пользовательского интерфейса с использованием фреймов, элементов управления
- •События
- •Классы событий
- •Класс ActionEvent
- •Элементы-источники событий
- •Интерфейсы прослушивания событий
- •Классы пакета awt: Component, Window, Frame
- •Элементы управления Label, Button, Checkbox, Choice, List, Scrollbar
- •Элементы управления TextField и TextArea
- •Диалоговые окна
- •Контроль знаний Индивидуальная практическая работа № 1. «Объекты и классы»
- •Индивидульная практическая работа № 2. «Наследование и скрытие данных. Абстрактные классы и интерфейсы»
- •Контрольная работа № 1. «Работа с файлами»
- •Контрольная работа № 2. «Разработка пользовательского интерфейса с использованием фреймов, элементов управления»
- •Список использованных источников
Ограничение доступа к элементам класса
Как и С, Java использует 3 ключевых спецификатора для установки ограничений доступа к элементам класса: public, private, protected.
public означает, что к данному элементу возможен доступ из любого места программы.
private – доступ может получить только член этого же класса.
protected – доступ может получить член собственного класса и члены производных классов. Наследующие классы имеют доступ к рrotected-членам, но не к private-членам.
friendly используется по умолчанию, когда никакой модификатор не указан. Действует как public внутри собственного пакета и как private вне пакета.
Статические переменные и методы
Объявляются при помощи ключевого слова static.
Переменные и методы, объявленные как static, являются разделяемыми свойствами всех классов, а не отдельных экземпляров объекта. То есть одна копия переменной разделяется всеми экземплярами объектов класса, поэтому к ним можно обращаться без ссылки на конкретный объект и до или без создания каких-либо объектов. При этом нестатические методы могут работать как с обычными, так и со статическими переменными.
Лекция 4
Методы, объявленные как static, могут работать только с переменными и методами, объявленными как static. Такие методы можно вызвать даже если объект не создан. В статических методах нельзя ссылаться на this и на super() (конструктор базового класса).
Метод main( ) объявляется как static, потому что должен вызваться прежде, чем будут созданы какие-либо объекты.
Пример:
class MyClass
{ String a;
static int b;
……………
public static void main(String args[])
{ MyClass MC = new MyClass();
…………………..}
}
Выделение памяти: статические переменные создаются один раз, как глобальные, то есть нет дублирования, как при нестатических переменных.
Статические переменные можно вызывать, не создав объекта класса.
Пример:
public class Myclass
{static boolean switch = true;
static int a = 1;
static int b;
public static void f1(int x)
{ switch =! switch;
System.out.println(“x= “+x);
System.out.println(“a= “+a);
}
static{ //статический блок инициализации
b=a*4;}
public static void main(String args[])
{ f1(25);}
}
switch – изменяемая переменная, и вызов метода f1 из каждого экземпляра объекта или любого метода меняет состояние switch для всех экземпляров объектов, в которых эта переменная определена.
Последовательность выполнения операторов:
a=1;
b=4;
вызов метода main( ) и следовательно метода f1(25).
Статические переменные объявляют, когда нужна общая переменная на все экземпляры класса. Это может быть, например, счетчик количества экземпляров класса.
Пример:
class someclass
{ static public int number; //счётчик
public someclass();
{ number++;}
}
class Test
{ public static void main(String args[])
{ someclass z1 = new someclass();
someclass z2 = new someclass();
System.out.println(someclass. number);
}
}
main( ) – главная функция, с её начинается выполнение любой программы. Она вызывается кодом, который находится вне программы (поэтому main( ) объявляется как public).
