четверг, 5 июня 2014 г.

Определения, понятия, очевидности

Агрегация (композиция, включение)- методика создания нового класса путем включения существующих (машина состоит из колес, двигла...)
Делегирование - задача поставленная внешнему классу, перепоручается вложенному

Агрегация (агрегирование по ссылке) - отношение часть-целое, когда вложенный объект может существовать независимо от внешнего.
Композиция (агрегирование по значению) - внутренний объект не может существовать без объекта обертки.(университет - факультет)

Персистентность - сохранение состояния объектов между запусками программы.

Идентичность объектов  - есть равенство ссылок(java)
Эквивалентность объектов - есть равенство состояний объектов

Порядок инициализации объектов:

1. блок статической инициализации/инициализация статического поля базового класса.
2. блок статической инициализации/инициализация статического поля собственно класса.
3. Вызывается конструктор класса
3.1. Вызывается конструктор базового класса
3.2. Происходит инициализация переменных/ блоков инициализации в порядке их определения.
3.3. Вызывается остальной код конструктора.

Java and frustration

Java is very complex language. At least for me. I often fall into frustration learning it, especially passing tests like SCJP.


Var args syntax:

1:    static void varArgs1(int... args){}  
2:    static void varArgs2(int[] args){}  

3:    public static void main(String[] args) {  
4:      varArgs1(10, 20, 30);  
5:      varArgs1(new int[]{10, 20, 30});   //oyw. ok  
6:      varArgs2(10, 20, 30); //compile error  
7:      varArgs2(new int[]{10, 20, 30});  
8:  }