Панда Дзен
Ещё одна вещь, которая сразу была не понятна - конструкторы класса. Для чего надо и как использовать? о_О

Конструктор позволяет выполнить какие-либо действия при создании экземпляра класса (госссспади, Панда надеется, что правильно называет вещи). Т.е. вы создаёте экземпляр класса:



Итак, создано три собаки. В конструкторе класса Dog можно прописать следующее:



Конструктор активируется словом new.
Первого пса создали по умолчанию, без параметров. И сразу при создании вывели на экран сообщение "Создали пса: Гав!", увеличили счетчик собак (он прописан как static переменная класса Dog) и указали размер новой собаки указанный по умолчанию.
Второго пса создали со входящим параметром его размера и проделали всё то же самое, только назначили размер.
Третий пёс имеет в параметрах размер и кличку.
Конструкторы, в которых указывается несколько вариантов создания экземпляра, называются перегруженными. Т.е. можно любой указанной собаке передать параметры или не передавать, но для каждого варианта передачи параметров нужно написать конструктор. Вот такая фича.