Разделы презентаций


03 Классы. ООП в Java. Конструкторы. Блоки инициализации

Содержание

ПакетыОпределяют пространства имен типов.Могут быть вложенными.package com.my;class A {...}Полное имя класса: com.my.A

Слайды и текст этой презентации

Слайд 1Классы. ООП в Java. Конструкторы. Блоки инициализации.

Классы. ООП в Java. Конструкторы.  Блоки инициализации.

Слайд 2Пакеты
Определяют пространства имен типов.
Могут быть вложенными.

package com.my;
class A {...}

Полное имя

класса: com.my.A

ПакетыОпределяют пространства имен типов.Могут быть вложенными.package com.my;class A {...}Полное имя класса: com.my.A

Слайд 3Использование пакетов
Импортирование пакета
import com.my.A;
A a = new A();

Использование полного имени

типа
com.my.A a = new com.my.A();

Подпакеты не импортируются!

Использование пакетовИмпортирование пакетаimport com.my.A;A a = new A();Использование полного имени типаcom.my.A a = new com.my.A();Подпакеты не импортируются!

Слайд 4Примеры пакетов
java.lang базовые типы
java.util структуры данных
java.io потоки ввода/вывода
java.sql JDBC
javax.swing GUI

Примеры пакетовjava.lang	базовые типыjava.util		структуры данныхjava.io		потоки ввода/выводаjava.sql		JDBCjavax.swing	GUI

Слайд 5Виды классов по объявлению
class
enum

Виды классов по объявлениюclassenum

Слайд 6Виды классов по расположению
Верхнего уровня
Вложенные
Анонимные
Локальные
Внутренние
Элементы классов

Виды классов по расположениюВерхнего уровняВложенныеАнонимныеЛокальныеВнутренниеЭлементы классов

Слайд 7Экземпляр класса
Класс - это шаблон (тип)
Экземпляр класса - реализация шаблона

(переменная данного типа)

new - оператор создания экземпляра класса

Экземпляр классаКласс - это шаблон (тип)Экземпляр класса - реализация шаблона (переменная данного типа)new - оператор создания экземпляра

Слайд 8Что может содержать класс (элементы/члены класса)

Конструкторы
Блоки инициализации
Методы
Поля
Вложенные классы

Что может содержать класс (элементы/члены класса) КонструкторыБлоки инициализацииМетодыПоляВложенные классы

Слайд 9static элементы класса
Принадлежат классу, но не его экземплярам

class A {
static

int x;
static void m() {...}
static {...}
static class B {...}
}

static элементы классаПринадлежат классу, но не его экземплярамclass A {	static int x;	static void m() {...}	static {...}	static class

Слайд 10Конструкторы класса
Предназначены для создания объектов.

class Test {
Test() {...}
}

Test

t = new Test();

Конструкторы классаПредназначены для создания объектов.class Test {  Test() {...}}Test t = new Test();

Слайд 11Методы класса
Определяют функциональность объектов.

class Test {
void m() {...}
}

Test t =

new Test();
t.m();

Методы классаОпределяют функциональность объектов.class Test {	void m() {...}}Test t = new Test();t.m();

Слайд 12Поля класса
Определяют состояние объекта.

class Human {
int age = 30;
}

Human human

= new Human();
System.out.println(human.age);

Поля классаОпределяют состояние объекта.class Human {	int age = 30;}Human human = new Human();System.out.println(human.age);

Слайд 13Блоки инициализации
Инициализируют объект.

class Test {
{...}
}

Блоки инициализацииИнициализируют объект.class Test {	{...}}

Слайд 14Классы - элементы классов
Объект может содержать (агрегировать) другие объекты.

class Student

{
class Brain {...}
Brain brain;
}

Классы - элементы классовОбъект может содержать (агрегировать) другие объекты.class Student {	class Brain {...}	Brain brain;}

Слайд 15Наследование
class A extends B {...}

Потомок - всегда частный случай предка.

Наследуются

все элементы класса B.

Потомок может заменить предка в любом контексте.

Наследованиеclass A extends B {...}Потомок - всегда частный случай предка.Наследуются все элементы класса B.Потомок может заменить предка

Слайд 16Инкапсуляция
Ограничение доступа к элементам класса.

Сокрытие деталей внутренней реализации.

Цель: целостность объекта.

ИнкапсуляцияОграничение доступа к элементам класса.Сокрытие деталей внутренней реализации.Цель: целостность объекта.

Слайд 17Полиморфизм
class Base { void m() {...} }
class A

extends Base { void m() {...} }
class B

extends Base { void m() {...} }

Потомок может переопределить функциональность предка

Base base = new A(); Base base = new B();
base.m(); base.m();
Полиморфизмclass Base {  void m() {...}  }class A extends Base {  void m() {...}

Слайд 18Уровни доступа к элементам класса

private внутри класса
default внутри пакета
protected внутри пакета и потомков
public любой

внешний код

default - по умолчанию

Уровни доступа к элементам классаprivate		внутри классаdefault		внутри пакетаprotected	внутри пакета и потомковpublic		любой внешний кодdefault - по умолчанию

Слайд 19Уровни доступа к классам
Классы верхнего уровня:
public default

Вложенные классы:
public protected default private
Локальные классы:
default

Уровни доступа к классамКлассы верхнего уровня:public	defaultВложенные классы:public	protected 	default	privateЛокальные классы:default

Слайд 20Конструктор
Создает экземпляр класса
Имя совпадает с именем класса
Не может быть наследован
Не

имеет типа возвращаемого результата
Может иметь любой уровень доступа

КонструкторСоздает экземпляр классаИмя совпадает с именем классаНе может быть наследованНе имеет типа возвращаемого результатаМожет иметь любой уровень

Слайд 21Конструктор по умолчанию
Конструктор без параметров:
class A { public A(){...} }

Если в классе

не определен ни один конструктор, то компилятор создаст и вставит

в байт код конструктор по умолчанию.

Т.о. любой класс содержит конструктор
Конструктор по умолчаниюКонструктор без параметров:class A {	public A(){...}	}Если в классе не определен ни один конструктор, то компилятор

Слайд 22Ключевое слово this
Ссылка на экземпляр класса, который ее использует

Способ вызова

одного конструктора из другого

Ключевое слово thisСсылка на экземпляр класса, который ее используетСпособ вызова одного конструктора из другого

Слайд 23Ключевое слово super
Способ обратится к элементу класса предка

Способ вызова конструктора

класса предка

Ключевое слово superСпособ обратится к элементу класса предкаСпособ вызова конструктора класса предка

Слайд 24Вызов конструктора предка из конструктор потомка
Любой конструктор всегда содержит первой

строкой вызов конструктор предка.

public A(int x) {
super(9, "abcd");
}

Если вызов явно

не прописан, то компилятор вставит в байт код вызов super();
Вызов конструктора предка из конструктор потомкаЛюбой конструктор всегда содержит первой строкой вызов конструктор предка.public A(int x) {	super(9,

Слайд 25Перекрытие методов
Позволяет реализовать полиморфизм

class A {
void m() {...}
}
class B extends

A {
void m() {...}
}

Перекрытие методовПозволяет реализовать полиморфизмclass A {	void m() {...}}class B extends A {	void m() {...}}

Слайд 26Сокрытие статических методов

class A {
static void m() {...}
}
class B extends

A {
static void m() {...}
}

Полиморфизма нет.

Сокрытие статических методовclass A {	static void m() {...}}class B extends A {	static void m() {...}}Полиморфизма нет.

Слайд 27Ограничения при перекрытии
Нельзя сужать уровень доступа;
Нельзя расширять множество выбрасываемых проверяемых

исключений;
Тип возвращаемого результата:
для примитивных типов и void: такой же
для ссылочных

должен быть автоматически приводим к типу возвращаемого результата метода предка
Ограничения при перекрытииНельзя сужать уровень доступа;Нельзя расширять множество выбрасываемых проверяемых исключений;Тип возвращаемого результата:для примитивных типов и void:

Слайд 28Перегрузка методов
class A {
void m() {...}
void m(int x) {...}
}

Конструкторы класса

всегда перегружены.

Перегрузка методовclass A {	void m() {...}	void m(int x) {...}}Конструкторы класса всегда перегружены.

Слайд 29Значения полей по умолчанию
примитивные типы числовые ==> 0
boolean ==> false
ссылочные ==>

null

Значения полей по умолчаниюпримитивные типы числовые 	==> 0boolean	==> falseссылочные ==> null

Слайд 30Инициализация полей
При объявлении
В конструкторе
В блоках инициализации
В методах

Инициализация полейПри объявленииВ конструктореВ блоках инициализацииВ методах

Слайд 31Ключевое слово final
Четыре контекста:
класс - нельзя наследовать
метод - нельзя перекрыть
поле

- константа
локальная переменная - константа

Ключевое слово finalЧетыре контекста:класс - нельзя наследоватьметод - нельзя перекрытьполе - константалокальная переменная - константа

Слайд 32final поля
Константы. Должны быть определены одним из следующих образом:
1) при

объявлении
2) в конструкторе
3) в блоке инициализации

Если константа статическая, то пишут

в верхнем регистре через подчеркивание:
static final int SOME_CONST = 2;
final поляКонстанты. Должны быть определены одним из следующих образом:1) при объявлении2) в конструкторе3) в блоке инициализацииЕсли константа

Слайд 33Локальные константы
void m() {
final int x;
final String s = "ABC";
}

Локальные константыvoid m() {	final int x;	final String s =

Слайд 34Абстрактные классы
Класс объявленный со спецификатором abstract

Может содержать абстрактные методы (методы

без реализации).

abstract class A {
abstract void m();
}

Абстрактные классыКласс объявленный со спецификатором abstractМожет содержать абстрактные методы (методы без реализации).abstract class A {	abstract void m();}

Слайд 35Свойства абстрактного класса
Нельзя создать экземпляр, но можно объявить переменную данного

типа

Может иметь конструкторы

Может иметь не абстрактные методы

Может не содержать абстрактных

методов
Свойства абстрактного классаНельзя создать экземпляр, но можно объявить переменную данного типаМожет иметь конструкторыМожет иметь не абстрактные методыМожет

Слайд 36Предназначение абстрактных классов

Определить частичную функциональность, оставив часть методов не реализованными.

При

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

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

Слайд 37Процесс создания объекта.
A extends B extends

C
При создании объекта: new A()
1) выполняются статические блоки инициализации C,

B, A (если эти классы еще не загружены в JVM);
2) для классов C, B, A последовательно выполняются:
а) блок инициализации
б) конструктор
Процесс создания объекта.A  extends  B  extends  CПри создании объекта: new A()1) выполняются статические

Слайд 38Класс Class
Класс Class является метаклассом для всех классов Java.
Когда JVM

загружает файл .class, который описывает некоторый тип, в памяти создается

объект класса Class, который будет хранить это описание.
Класс ClassКласс Class является метаклассом для всех классов Java.Когда JVM загружает файл .class, который описывает некоторый тип,

Слайд 39Point p=new Point(1,2);
объект типа Point, описывающий точку (1,2);
объект класса Class,

описывающий класс Point;
объект класса Class, описывающий класс Object.
Поскольку класс

Point наследуется от Object, его описание также необходимо;
объект класса Class, описывающий класс Class. Это обычный Java-класс, который должен быть загружен по общим правилам.
Point p=new Point(1,2);объект типа Point, описывающий точку (1,2);объект класса Class, описывающий класс Point;объект класса Class, описывающий класс

Слайд 40Класс Object
Именно от него наследуются все классы, в объявлении которых

явно не указан другой родительский класс. Значит, любой класс напрямую,

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

Слайд 41Метод getClass()
Этот метод возвращает объект класса Class, который описывает класс,

от которого был порожден этот объект. Результатом будет строка: java.

lang. String
В отличие от оператора instanceof, метод getClass() всегда возвращает точно тот класс, от которого был порожден объект.
Метод getClass()Этот метод возвращает объект класса Class, который описывает класс, от которого был порожден этот объект. Результатом

Слайд 42Метод equals()
служит для сравнения объектов по значению, а не по

ссылке
имеет один аргумент типа Object
возвращает boolean

Метод equals()служит для сравнения объектов по значению, а не по ссылкеимеет один аргумент типа Object возвращает boolean

Слайд 43Метод toString()
позволяет получить текстовое описание любого объекта
можно переопределить
Для класса

Object и его наследников, не переопределивших toString(), метод возвращает следующее

выражение:
getClass().getName()+"@"+hashCode()
Метод toString()позволяет получить текстовое описание любого объектаможно переопределить Для класса Object и его наследников, не переопределивших toString(),

Слайд 44Практическое задание
См. далее, на следующих слайдах.
Это задание "для себя", т.е.

не обязательно его делать, НО ЖЕЛАТЕЛЬНО!

Первое из 4-х заданий, кот.

нужно сделать, будет дано позже через багтреккер.

Если будут какие-то вопросы (конкретные и лаконичные!), могу ответить вконтакте: http://vk.com/id32721652
Практическое задание См. далее, на следующих слайдах.Это задание

Слайд 451. Класс "Окружность".

Класс должен иметь следующие поля:
1) x, y

- координаты центра окружности;
2) radius - радиус окружности.

Класс должен иметь

следующие методы:
1) передвинуть окружность на dx и dy;
2) проверить попадание заданной точки внутрь данной окружности;
3) проверить попадание другой окружности внутрь данной;
4) вывести на экран параметры окружности.
1. Класс

Слайд 462. Класс "Вектор" для хранения ссылок на объекты.

Класс должен иметь

следующие поля:
1) массив ссылок, который может расти;
2) количество ссылок в

массиве.

Класс должен иметь следующие методы:
1) очистить весь массив;
2) добавить ссылку в массив;
3) Получить j-й элемент;
4) Удалить j-й элемент;
5) вывести значения массива на экран.
2. Класс

Слайд 473. Класс "Матрица".

Класс должен иметь следующие поля:
1) двумерный массив вещественных

чисел;
2) количество строк и столбцов в матрице.

Класс должен иметь следующие

методы:
1) сложение с другой матрицей;
2) умножение на число;
3) умножение на другую матрицу;
4) транспонирование;
5) вывод на печать.
3. Класс

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика