22
Noveo Summer School Лекция 1. Основы Java. ООП.

Android - 01 - Java Basics

  • Upload
    noveo

  • View
    264

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Android - 01 - Java Basics

Noveo Summer School

Лекция 1. Основы Java. ООП.

Page 2: Android - 01 - Java Basics

2

Введение

Java — объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). Как используется Java у нас:• Java Enterprise Edition• Android • Blackberry

Основы Java

Page 3: Android - 01 - Java Basics

3

Что необходимо для старта

• JDK 7 (www.oracle.com)• IDE– NetBeans– Eclipse– IntelliJ IDEA

Основы Java

Page 4: Android - 01 - Java Basics

Тема лекции4

Hello, world

package com.noveogroup.hello

public class HelloWorldClass {public static void main(String[] args)

{System.out.println(“Hello

world”);}

}

Page 5: Android - 01 - Java Basics

5

Методы

public int getValue(int id, String name) {…}

Основы Java.

publicprotectedprivate*default

По ссылкеПо значению

Page 6: Android - 01 - Java Basics

6

Типы данных

Примитивные• byte• short• int• long• float• double• boolean• char

Ссылочные

Ссылочные• Массивы (int[] array)• Классы/интерфейсы• ПеречисленияНапример:• String• Date• Calendar

Основы Java

Page 7: Android - 01 - Java Basics

Тема лекции7

Типы данных

byteshortint

longfloat

doubleboolean

char

ByteShort

IntegerLongFloat

DoubleBoolean

Character

Page 8: Android - 01 - Java Basics

8

Autoboxing

Inboxing Unboxing

Метод

Вызов:

Основы Java

Метод:

Вызов:

Page 9: Android - 01 - Java Basics

9

КлассыНаследование

ООП в Java

Page 10: Android - 01 - Java Basics

10

КлассыНаследование. final.

public final class MyClass {public final void getValue (final String

val) {final int a = 10;

} }

ООП в Java

Page 11: Android - 01 - Java Basics

11

КлассыНаследование. Object.

Object• public String toString();• public boolean equals (Object obj);• public int hashCode();• protected Object clone();• protected void finalize();• public Class<?> getClass();• public void notify();• public void notifyAll();• public void wait();

ООП в Java

Page 12: Android - 01 - Java Basics

12

КлассыНаследование. Abstract.

public final abstract class MyClass() { private public abstract int

getValue();}

ООП в Java

Page 13: Android - 01 - Java Basics

13

КлассыInner classes.

public class OuterClass {private int value = 0;

class InnerClass {public void incrementValue() {

value++;}

}

}ООП в Java

Page 14: Android - 01 - Java Basics

14

КлассыАнонимные классы.

public class BaseClass {public void doSomething() {…}

}

public static void main(String[] args) {BaseClass baseClass = new BaseClass() {

@Overridepublic void doSomething() {

…}

}baseClass.doSomething();

}

ООП в Java

Page 15: Android - 01 - Java Basics

15

Интерфейсы

public interface MyInterface {int NAME_LENGTH = 20;

void getName();void getEmail();

}

ООП в Java

Page 16: Android - 01 - Java Basics

16

ИнтерфейсыРеализация.

public class MyClass implements MyInterface1, MyInterface2 {

@Overridepublic void methodFromInterface1() {…}

@Overridepublic void methodFromInterface2() {…}

}

ООП в Java

Page 17: Android - 01 - Java Basics

17

ИнтерфейсыНаследование.

public interface MyInterface2 {…}

public interface MyInterface3 {…}

public interface MyInterface1 extends MyInterface2, MyInterface3 {…}

ООП в Java

Page 18: Android - 01 - Java Basics

18

Enum

public enum UserRole {ADMIN, USER, GUEST

}

Использование:UserRole role = UserRole.ADMIN;

Enum

Page 19: Android - 01 - Java Basics

19

Enumpublic enum UserRole {

ADMIN(“adm”), USER (“usr”), GUEST (“gst”);

private String shortName;

private UserRole(String str) {this.shortName = str;}

public String getShortName() {return shortName;}

}

ИспользованиеUserRole role = UserRole.ADMIN;role.getShortName();

Enum

Page 20: Android - 01 - Java Basics

Материалы20

Материалы

• http://docs.oracle.com/javase/tutorial/

• “Just Java”• “Thinking in Java”• http://docs.oracle.com/javase/specs/

Page 21: Android - 01 - Java Basics

Практика21

Практическое заданиеhttps://github.com/noveogroup/university-android-FirstJavaTask

Описание:Есть три типа девайсов: телефоны, ноутбуки и планшеты. У каждого девайса есть своя цена.Необходимо написать несколько функций сортировки, которые могли бы сортировать по возрастанию/убыванию цены массив девайсов.

Указания:1)Алгоритмы для реализации: сортировка пузырьком, сортировка вставками, быстрая сортировка (quicksort).2) Для каждого  алгоритма сортировки и для каждого девайса необходимо выделить свой класс.3) Классы сортировок должны реализовывать интерфейс Algorithm.4) Классы девайсов должны реализовывать интерфейс Device.

Всяческое применение рассмотренного на лекции материала приветствуется (абстрактные классы, реализация нескольких интерфейсов, final и т.д.).

Page 22: Android - 01 - Java Basics

Где найти слайды22

Где найти слайды

http://www.slideshare.net/noveogroup