Java. Classes.

2,376 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,376
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
34
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Java. Classes.

    1. 1. Язык Java Классы и объекты
    2. 2. Пример класса <ul> <li>class TestClass{ private int field1; private String field2; public void method1(){ System.out.println(«Hello, world»); } } <li>class ChildClass extends ParentClass{ } </ul>
    3. 3. Декларация класса <ul> <li>Декларация класса <ul> <li>class ParentClass{} <li>class ChildClass extends ParentClass{} <li>class ParentClass implements IFace1{} <li>class ChildClass extends ParentClass implements IFace2{} </ul> <li>Декларация полей класса <li>Декларация метода класса <li>Модификаторы доступа <ul> <li>public <li>private <li>protected </ul> </ul>
    4. 4. Перегрузка методов <ul> <li>Перегрузка методов: overloading <li>Пример: <ul> <li>void method1(); <li>void method1(int i); <li>void method1(string s); <li>void method1(int i, string s); </ul> <li>Конструктор <ul> <li>public ClassName() </ul> <li>Перегрузка конструкторов <ul> <li>public ClassName() <li>public ClassName(int param) </ul> </ul>
    5. 5. Передача данных в методы <ul> <li>public void method(int i, String s){ System.out.println(«i: »+i+«; s: »+s); } <li>Переменное число параметров: <ul> <li>void method(Object... params){ System.out.println(«число параметров: » +params.length); System.out.println(«Значение: »+params[i]); } </ul> <li>Сокрытие полей <li>Передача параметров по значению </ul>
    6. 6. Создание объектов <ul> <li>Декларация объекта <ul> <li>Type objectName; </ul> <li>Инстанциирование объекта <ul> <li>objectName = new </ul> <li>Инициализация <ul> <li>Type objectName = new Type() </ul> <li>Доступ к полям объекта <li>Доступ к методам объекта </ul>
    7. 7. Возврат данных из метода <ul> <li>Оператор return <li>return value; <li>Возвращение класса или интерфейса: <ul> <li>public ClassName method(){ ClassName cn = new ClassName(); return cn; } </ul> </ul>
    8. 8. this <ul> <li>this – ссылка на текущий объект <li>При сокрытии полей: <ul> <li>this.shadowField </ul> <li>Использование this при вызове конструкторов класса: <ul> <li>public class ClassName { private int x, y; <li>public ClassName() { this(0, 0); } <li>public ClassName(int x, int y) { <li>this.x = x; <li>this.y = y; <li>} <li>} </ul> </ul>
    9. 9. Модификаторы доступа <ul> <li>Для классов и интерфейсов: <ul> <li>public, package-private (при отсутствии модификатора) </ul> <li>Для полей и методов: <ul> <li>public, private, protected, package-private (при отсутствии модификатора) </ul> </ul>
    10. 10. Члены класса/экземпляра <ul> <li>Переменная класса - спецификатор static <ul> <li>public static int i=10; </ul> <li>Метод класса имеет спецификатор static <ul> <li>public static void method(); </ul> <li>Вызов метода класса: <ul> <li>ClassName.method(); </ul> <li>Член класса – общий для всех экземпляров класса <li>Константа <ul> <li>static final double PI = 3.1415 </ul> </ul>
    11. 11. Переменные <ul> <li>Переменные класса <ul> <li>public static int i=0; <li>Переменная имеет одинаковое значение для всех экземпляров класса </ul> <li>Переменная экземпляра <ul> <li>private int i=0; <li>Для каждого экземпляра класса данная переменная имеет свое значение </ul> </ul>
    12. 12. Переменные <ul> <li>Переменная класса <ul> <li>Обращение к переменной класса производится по имени класса <li>ClassName.field; </ul> <li>Переменная экземпляра <ul> <li>Обращение к переменной экземпляра производится через создаваемый экземпляр класса <li>ClassName cn = new ClassName(); cn.field=10; </ul> </ul>
    13. 13. Методы <ul> <li>Обращение к методу класса производится по имени класса: <ul> <li>public static void method(){} <li>ClassName.method() </ul> <li>Обращение к методу экземпляра производится через создаваемый экземпляр: <ul> <li>public void method(){} <li>ClassName cn = new ClassName(); cn.method() </ul> </ul>
    14. 14. Обращение методов к полям <ul> <li>Статические методы: <ul> <li>public static int i; public int j; public static void method(){ i=10; ClassName cn = new ClassName(); cn.j=20; } </ul> <li>Методы экземпляра: <ul> <li>public void method(){ i=10; j=20; } </ul> </ul>
    15. 15. Инициализация полей <ul> <li>public static int i=10; <li>Инициализация статических переменных через статические инициализационные блоки: static{ i=10; } <li>Инициализация статических переменных посредством статических методов: public static int i=method(); public static int method(){} </ul>
    16. 16. Инициализация полей <ul> <li>public int i=0; <li>Инициализация полей экземпляра посредством инициализационных полей: { i=20; } <li>Инициализация полей экземпляра final методом: public int i=method(); public final int method(){} <li>Инициализация в конструкторах </ul>
    17. 17. Вложенные классы <ul> <li>Nested — вложенные классы <li>class Outer{ public static class Inner{ } } <li>Outer.Inner cl = new Outer.Inner(); <li>Вложенный класс взаимодействует со своим внешним классом как обычный внешний класс </ul>
    18. 18. Вложенные классы <ul> <li>Inner класс — не является статическим, связан с экземпляром внешнего класса. class Outer{ public class Inner{ } } Outer out = new Outer(); Outer.Inner in = out.new Inner(); <li>Имеет прямой доступ к членам внешнего класса </ul>
    19. 19. Перечисления enum <ul> <li>public enum ClassName <li>Конструктор не имеет модификатора доступа: <ul> <li>ClassName() </ul> <li>Может иметь поля и методы <li>Для получения коллекции значений, хранящихся в enum используется метод values() for(EnumTest e : EnumTest.values()) </ul>
    20. 20. Конец Вопросы

    ×