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


Основы программирования - Java ФИСТ 1 курс Власенко Олег Федосович

Содержание

Неформальное введение в ООП ( Again  )

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

Слайд 1Основы программирования - Java ФИСТ 1 курс Власенко Олег Федосович
Лекция 3
ООП. Основные

понятия

Основы программирования - Java ФИСТ 1 курс   Власенко Олег ФедосовичЛекция 3ООП. Основные понятия

Слайд 2Неформальное введение в ООП ( Again  )

Неформальное введение в ООП ( Again  )

Слайд 3Что такое ООП?

Что такое ООП?

Слайд 4Объект Кот

Объект Кот

Слайд 5Какие свойства есть у кота?

Какие свойства есть у кота?

Слайд 6Объект Кот

Объект Кот

Слайд 7А методы?

А методы?

Слайд 8Объект Кот

Объект Кот

Слайд 9А что с другими животными?

А что с другими животными?

Слайд 10Собака

Собака

Слайд 11Сравнение свойств Кота и Собаки

Сравнение свойств Кота и Собаки

Слайд 12Сравнение методов Кота и Собаки

Сравнение методов Кота и Собаки

Слайд 13Домашние животные

Домашние животные

Слайд 14Принцип наследования

Принцип наследования

Слайд 15Схема наследования

Схема наследования

Слайд 16Несколько терминов

Несколько терминов

Слайд 17UML – диаграмма классов
UML = Unified Modeling Language

UML – диаграмма классовUML = Unified Modeling Language

Слайд 18источник вдохновения
http://www.slideshare.net/smirik/ruby-11754239

источник вдохновенияhttp://www.slideshare.net/smirik/ruby-11754239

Слайд 19Пример с ООП

Пример с ООП

Слайд 20Перевод числа из 10-й системы счисления в 2-ую
Пример:
N = 12
N

% 2 = 12 % 2 = 0  0 N

= N / 2 = 12 / 2 = 6 N > 0 +
N % 2 = 6 % 2 = 0  0 N = N / 2 = 6 / 2 = 3 N > 0 +
N % 2 = 3 % 2 = 1  1 N = N / 2 = 3 / 2 = 1 N > 0 +
N % 2 = 1 % 2 = 1  1 N = N / 2 = 1 / 2 = 0 N > 0 -

Полученные цифры нужно вывести в обратном порядке:
1100

Перевод числа  из 10-й системы счисления в 2-уюПример:N = 12N % 2 = 12 % 2

Слайд 21Реализация через StringBuilder
public class Lect5Main1 {
public static void main(String[] args)

{
int num = 49;
StringBuilder str = new StringBuilder();
do {
int binDigit

= num % 2;
char binChar = binDigit == 0 ? '0' : '1';
str.append(binChar);
num = num / 2;
} while (num > 0);
str.reverse();
System.out.println(str.toString());
}
}
Реализация через StringBuilderpublic class Lect5Main1 {	public static void main(String[] args) {		int num = 49;		StringBuilder str = new

Слайд 22Реализация через стек
public class Lect5Main2 {
public static void main(String[] args)

{
int num = 129;
StackChar stack = new StackChar(32);
do {
int

binDigit = num % 2;
char binChar = binDigit == 0 ? '0' : '1';
stack.push(binChar);
num = num / 2;
} while (num > 0);
while (!stack.isEmpty()) {
System.out.print(stack.pop());
}
System.out.println();
}
}
Реализация через стекpublic class Lect5Main2 {	public static void main(String[] args) {		int num = 129;		StackChar stack = new

Слайд 23Как работает стек

Как работает стек

Слайд 24Реализуем стек

public class StackChar {
private char [] stack;
private int top;

public

StackChar(int size) {
stack = new char[size];
top = 0;
}



public void push(char

ch) {
stack[top] = ch;
top++;
}

public char pop() {
top--;
return stack[top];
}

public boolean isEmpty() {
return top == 0;
}

}
Реализуем стекpublic class StackChar {	private char [] stack;	private int top;	public StackChar(int size) {		stack = new char[size];		top =

Слайд 25Реализация через стек (Again)
public class Lect4Main2_v2 {
public static void main(String[]

args) {
int num = 129;
StackChar stack = new StackChar(32);
do

{
int binDigit = num % 2;
char binChar = binDigit == 0 ? '0' : '1';
stack.push(binChar);
num = num / 2;
} while (num > 0);
while (!stack.isEmpty()) {
System.out.print(stack.pop());
}
System.out.println();
}
}
Реализация через стек (Again)public class Lect4Main2_v2 {	public static void main(String[] args) {		int num = 129;		StackChar stack =

Слайд 26Интерфейс
Интерфе́йс (англ. interface) — общая граница между двумя функциональными объектами, требования к

которой определяются стандартом;
совокупность средств, методов и правил взаимодействия (управления,

контроля и т.д.) между элементами системы. (https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81 )

Интерфейс это совокупность методов и правил взаимодействия элементов системы. Другими словами интерфейс определяет как элементы будут взаимодействовать между собой.
Интерфейс двери – элементы: ручка, замок
Интерфейс автомобиля – элементы: руль, педали, рычаг коробки передач.
Когда вы используете эти "объекты" вы уверены в том что вы сможете использовать их подобным образом. Благодаря тому что вы знакомы с их интерфейсом

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

Слайд 27Интерфейс IStackChar

public interface IStackChar {
void push(char ch);
char pop();
boolean isEmpty();
}

Интерфейс IStackCharpublic interface IStackChar {	void push(char ch);	char pop();	boolean isEmpty();}

Слайд 28реализация стека №1
public class StackChar1 implements IStackChar {

private char []

stack;
private int top;

public StackChar1(int size) {
stack = new char[size];
top =

0;
}

@Override
public void push(char ch) {
stack[top] = ch;
top++;
}

}
реализация стека №1public class StackChar1 implements IStackChar {	private char [] stack;	private int top;	public StackChar1(int size) {		stack =

Слайд 29реализация стека №2
import java.util.ArrayList;

public class StackChar2 implements IStackChar {
ArrayList stack;

public

StackChar2(int size) {
stack = new ArrayList(size);
}

@Override
public void push(char ch) {
stack.add(ch);
}



}

реализация стека №2import java.util.ArrayList;public class StackChar2 implements IStackChar {	ArrayList stack;	public StackChar2(int size) {		stack = new ArrayList(size);	}	@Override	public void

Слайд 30реализация стека №2 (ч 2)
public class StackChar2 implements IStackChar {
ArrayList

stack;

@Override
public char pop() {
int lastIndex = stack.size() - 1;
char ch

= stack.get(lastIndex);
stack.remove(lastIndex);
return ch;
}

@Override
public boolean isEmpty() {
return stack.isEmpty();
}
}
реализация стека №2 (ч 2)public class StackChar2 implements IStackChar {	ArrayList stack;	…	@Override	public char pop() {		int lastIndex = stack.size()

Слайд 31Решение с интерфейсом
public class Lect4Main2_v3 {
public static void main(String[] args)

{
int num = 26;
//IStackChar stack = new StackChar1(32);
IStackChar stack

= new StackChar2(32);
do {
int binDigit = num % 2;
char binChar = binDigit == 0 ? '0' : '1';
stack.push(binChar);
num = num / 2;
} while (num > 0);
while (!stack.isEmpty()) {
System.out.print(stack.pop());
}
System.out.println();
}
}
Решение с интерфейсомpublic class Lect4Main2_v3 {	public static void main(String[] args) {		int num = 26;		//IStackChar stack = new

Слайд 32Диаграмма классов (UML)

Диаграмма классов (UML)

Слайд 33Некоторые детали ООП в Java

Некоторые детали ООП  в Java

Слайд 34Модификаторы доступа
private: члены класса доступны только внутри класса;
«default» (package-private) (модификатор,

по-умолчанию): члены класса видны внутри пакета;
protected: члены класса доступны внутри

пакета и в наследниках;
public: члены класс доступны всем;

Модификаторы доступаprivate: члены класса доступны только внутри класса;«default» (package-private) (модификатор, по-умолчанию): члены класса видны внутри пакета;protected: члены

Слайд 35Модификаторы доступа
static - ссылка этого поля у любого экземпляра класса

будет ссылаться на одно и то же значение
final – это

модификатор, позволяющий объявлять константные поля в классе.

Модификаторы доступаstatic - ссылка этого поля у любого экземпляра класса будет ссылаться на одно и то же

Слайд 36Элементы класса
public class Sample {
private int x; //

переменная экземпляра класса
private int y = 0; //

переменная экземпляра класса
public final int CURRENT_YEAR = 2012; // константа
protected static int bonus; // переменная класса
static String version = "Java SE 7"; // переменная класса
protected Calendar now;
public int method(int z) {
return z++;
}
}
Элементы классаpublic class Sample {  private int x; // переменная экземпляра класса  private int y

Слайд 37Примеры использования статических методов
public class StaticSamples {
public static void main(String[]

args) {
double phi = Math.PI / 6;
System.out.printf("sin(%f)=%f\n", phi, Math.sin(phi));
phi =

Math.PI / 4;
System.out.printf("tan(%f)=%f\n", phi, Math.tan(phi));
phi = Math.PI / 2;
System.out.printf("tan(%f)=%f\n", phi, Math.tan(phi));
System.out.printf("sin(%f)=%f\n", phi, Math.sin(phi));
System.out.printf("cos(%f)=%f\n", phi, Math.cos(phi));
}
}
Примеры использования статических методовpublic class StaticSamples {	public static void main(String[] args) {		double phi = Math.PI / 6;		System.out.printf(

Слайд 38Конструкторы
public class Quest {
// конструктор без параметров (по

умолчанию)
public Quest() {
System.out.println("Вызван конструктор

без параметров!!!");
}
// конструктор с параметрами
public Quest(int idc, String txt) {
super(); /* вызов конструктора супер класса явным образом необязателен, компилятор вставит его автоматически*/
System.out.println("Вызван конструктор c параметрами!!!");
System.out.println(id + " " + text);
}
}
Конструкторыpublic class Quest {  // конструктор без параметров (по умолчанию)  public Quest() {

Слайд 39Порядок инициализации класса
public class Department {
{ System.out.println("logic"); };

//2

static { System.out.println("static logic"); } //1
private int id = 7;
public Department(int d) {
id = d;
System.out.println("конструктор"); //3
}
int getId() { return id; }
{ id = 10; System.out.println("logic"); } //2
}
Порядок  инициализации классаpublic class Department {  { System.out.println(

Слайд 40Абстрактный класс
public abstract class AbstractCourse {
private String name;

public AbstractCourse() {
}
public abstract void

changeTeacher(int id); /*определение метода отсутствует */
public void setName(String n) {
name = n;
}
}
Абстрактный классpublic abstract class AbstractCourse {  private String name;  public AbstractCourse() {  }

Слайд 41Особенности наследования в Java
public class ArrayList extends AbstractList implements List,

RandomAccess, Cloneable, Serializable {

}

Внимание: В Java класс наследуется от ОДНОГО

класса, но реализует произвольное количество интерфейсов.
Особенности  наследования в Javapublic class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, Serializable {	…}Внимание: В Java

Слайд 42Литература
http://www.slideshare.net/smirik/ruby-11754239 (источник вдохновения - наследование)

http://hashcode.ru/questions/136909/%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D1%8B-%D0%B2-%D0%BE%D0%BE%D0%BF-java-%D0%BF%D0%BE-%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%BC%D1%83 (источник вдохновения - интерфейсы)

Литератураhttp://www.slideshare.net/smirik/ruby-11754239 (источник вдохновения - наследование)http://hashcode.ru/questions/136909/%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D1%8B-%D0%B2-%D0%BE%D0%BE%D0%BF-java-%D0%BF%D0%BE-%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%BC%D1%83 (источник вдохновения - интерфейсы)

Слайд 43Спасибо за внимание!
Власенко Олег Федосович


E-mail: vlasenko.oleg@gmail.com
Vk: vk.com/oleg.f.vlasenko
Телефон: 8 902 246

05 47


Спасибо за внимание!Власенко Олег ФедосовичE-mail: vlasenko.oleg@gmail.comVk: vk.com/oleg.f.vlasenkoТелефон: 8 902 246 05 47

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

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

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

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

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


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

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