Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Структура класса



На выше приведенном примере класса рассмотрим основные элементы структуры класса Java.

Объявление класса начинается со строки, в которой присутствует ключевое слово class и название класса. Java- регистрозависимый язык, поэтому классы с названиями Human и HuMan – это разные классы. Тело класса, все его структурные части заключены между фигурными скобками {}(строки 1.9,1.54). Обычно над объявлениями класса размещается информация о необходимых импортах и пакетах(информацию о пакетах см. ниже). В теле класса возможны следующие структурные элементы:

атрибуты класса (их иногда называют полями или свойствами класса). Их полным набором будет обладать любой экземпляр данного класса. В случае Human, каждый экземпляр этого класса будет иметь следующие свойства - фамилию, возраст, адрес проживания, день рождения, идентификационный код. Пример атрибутов- строки 1.10-1.14 Свойства класса должны отражать реальные свойства объектов моделируемой системы. Объявление атрибута класса ничем не отличается от обычной переменной- первоначально указывается модификатор доступа(в случае отсутствия его явного задания уровень доступа к свойству – дефаултовый (па-кетный)). Далее указывается тип данных, которые будут хранится в переменной.Затем указывается идентификатор или другими словами имя атрибута класса. В Java идентификаторы могут содержать буквы и цифрры(подчеркивание и $ разрешены), длина не ограничена. Имена атрибутов должны отражать их связь со свойствами реальных объектов. Пример:

строка 1.11 - private int age;, где private- модификатор доступа, int- тип данных, которые будут храниться в атрибуте с именем age.

конструкторы класса -это структурный элемент, отвечающий за правильность процедуры создания экземпляров класса. Обычно в конструкторах производят корректную инициализацию свойств создаваемых экземпляров. Количество конструкторов в классе не ограничено. Конструктор без параметров называют конструктором по умолчанию. Он создается автоматически, даже если не задан явно программистом, но только в случае, если в классе программист не создал ни одного конструктора. Если у нас есть хотя бы один конструктор, и есть необходимость в конструкторе без параметров, то мы должны его задать в коде самостоятельно. Особенности задания – конструктор всегда называется точно так же как сам класс. Использование при описании класса нескольких конструкторов с различными параметрами называется перегрузкой конструкторов. Пример – строка 1.21, 1.29, 1.16. При создании экземпляра класса (с использованием оператора new строка 1.40, 1.41) мы можем использовать только те конструкторы, параметры которых соответствуют, описанным в классе. Пример - я не могу,например, создать экземпляр класса Human командой = Human h123=new Human(23,45,”Сидоров”) =, т. к. у нас в описании класса нет ни одного конструктора с данной последовательностью и типом параметров – int, int, String.

Инициализаторы или блоки статической инициализации – их пока не рассматриваем.

Методы класса – в этой части сосредоточено поведение класса, то что каждый экземпляр класса умеет делать для других (внешний интерфейс) и то, что он делает для поддержания своей внутренней целостности и непротиворечивости(внутренний интерфейс). В рассматриваемом классе Human описаны следующие методы- getAdress() -1.32, setAdress(String adress)-1.35, main(String[] args) -1.39, toString() – 1.48 Они все относятся к внешнему интерфейсу класса т.к. имеют модификатор доступа public.

Остановимься чуть подробнее на синтаксисе объявления методов. Введем понятие сигнатуры метода- это совокупность имени метода, типов и количества параметров, а так же порядка параметров в описании метода. Понятие сигнатуры важно по причине того, что в классе не могут быть два метода с одинаковой сигнатурой. Это контролирует компилятор. Пример – компилятор не разрешит создание в одном классе методов one(String str, int var1) и one(String qwe, int sde) (докажите, что сигнатуры этих методов одинаковы), но разрешит создание методов one(String str1, int var1, Date d1), one(String str1,int var1) и one(Date d1,String str1,int var1) (докажите что сигнатуры методов различны для этих 3 методов). Наличие в классе нескольких методов с одинаковыми именами называется перегрузкой методов. Отдельная группа методов – это так называемые set-еры и get-еры. Это специлизированные методы, которые предназначены для считывания (get-еры) и модификации (set-еры) атрибутов класса. При этом атрибуты класса делают скрытыми от внешних клиентов (уровень доступа private).Доступ к этим атрибутам класса предоставляется через public- методы, пример getAdress() -1.32, setAdress(String adress)-1.35

Обратите внимание на параметр в описании модифицирующего метода – в этом методе в качестве параметра передается значение, которое необходимо присвоить атрибуту adress.

Порядок объявления метода следующий- модификатор доступа, тип возвращаемого значения, наименование метода и в скобках через запятую список параметров метода, с указанием типа и названия параметров.

Пример:

Строка 1.35 public void setAdress(String adress), где public – модификатор доступа, void – тип возвращаемого значения(void обозначает, что метод ничего не возвращает), setAdress(String adress) – название метода, в качестве параметра используется любая переменная, тип которой String.





Дата публикования: 2015-04-06; Прочитано: 2815 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2025 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.265 с)...