Създаване на собствени класове в Java свойства, методи, конструктори,
Теоретични материали и задачи за Java
Създаване на клас: свойства и методи
Вземем примера със създаването на прост клас. Нека да го използвате, за да се симулира кръг на координатната равнина.
Всеки кръг е известно, че се определя от центъра (т.е. две точки числени координати) и радиус (т.е., неговата дължина, представена като номер). Така кръг на референтната равнина 3, характеризиращ се с реални числа. Така че в този клас трябва да бъдат три съответните свойства.
Въпреки че няма да се опита да реши сериозните проблеми, с помощта на класа, и да го снабди със следните характеристики: създаване на клас на базата на кръг трябва да е възможно да се покаже (като описание на неговите характеристики), ход (т.е. да направи движението на преобразуване, промяна на нейния център координати ) и размер (т.е., да преобразуването на сходство, промяна на радиуса на кръга).
конструктори
Когато се създаде обект Circle o1 = нов кръг () команда; така наречената конструктор по подразбиране (или конструктора без параметри) - е специален метод клас, не сме определя ясно, но дори и да не може да се определи, че се създава автоматично изпълнява всеки път, когато създавате нов обект и определя началните стойности на свойствата му (им инициализира) , Стойностите по подразбиране за свойства зависят от вида (0 или 0.0 до видове ЧИЛОВ, фалшиво за булева тип, и т.н.).
Конструкторът по подразбиране може да се опише ясно и в същото време да поиска nachallnye стойности за свойствата на новия обект, с изключение на стойностите по подразбиране.
От останалата част от метода на конструктор е различна с това, че има същото име като на целия клас, и няма връщане тип (в действителност, в резултат на работата си, конструкторът връща нов обект на желания клас).
Тъй като методите могат да се претоварят и конструктора е метод, с помощта на претоварване, можете да създадете допълнителни опции за дизайнери. Например, че е подходящо да има конструктор, който позволява да се създаде обект изрично да посочвате координатите на центъра му и продължителност на радиус.
За да се опише като дизайнер може да бъде в допълнение към основната, както следва:
Сега, когато създавате обекти, можете да използвате всеки дизайнер, за да изберете от:
Трябва да се помисли за следния факт: ако класът е ясно описан поне един конструктор с параметри, конструктор по подразбиране (без параметри) създава автоматично няма да бъде (в такава ситуация е необходимо да се опише ясно). Въпреки че, ако имате нужда от само един конструктор с параметри (втората в нашия пример), а след това можете да направите изцяло без конструктор по подразбиране (описани в клас само един конструктор с параметри).
Достъп до членове на клас от техники за тяло
Ние добавяме към нашия метод клас изчисляване на площта на кръга, към които се прилага метода. Методът ще бъде описан, както следва:
В резултат на метода може да се види, както следва:
Забележка: в рамките на всеки метод клас наличните свойства на обекта, за който се извиква метода. Това означава, че ако ние наричаме метода за o2 обект, във вътрешността на метода, когато се стартира, ще работим конкретно с качествата на даден обект o2 (o2.x ще бъде на разположение за х, o2.r ще бъде на разположение като R и т.н.).
А ситуация може да възникне, когато формалните параметри на метода, който искате да използвате имена вече принадлежат на свойствата на класа.
Например, бихте могли да започнете описание на метод за мащабиране по този начин:
Как тогава се обърнете към свойства на обекта (за имената на тези свойства се припокриват формален параметър)?
Решаването на този неяснота съществува: всяко имущество, във вътрешността на метода могат да бъдат достъпни не само по име, но и чрез този линк. Това означава, че във вътрешността на метод можете да пишете х = 13;. и може да this.x = 13; - ефектът е идентичен. Съответно, когато официално името на параметъра отменя името на имота на името на собственост трябва да бъдат лекувани чрез този линк. След това този метод може да бъде пренаписана, както следва:
Ясно е, че е по-удобно да се избегне припокриване на имената собственост имената на местните параметри в методи. Понякога, обаче, той е длъжен в метод да се прилага друг метод към текущия обект, а след това без тази справка не може да направи.
Добавете метод клас за проверка дали двата кръга на една и съща зона.
При този метод трябва да включва два обекта: един за която методът се нарича сравнение и втора страна, които могат да се предават чрез параметър метод. Когато тази опция ще има подходящия тип (не някаква вградена, както и клас Circle).
Методът може да бъде описан, както следва:
Пример на метода:
- Създаване на метод Circle клас изчисляване на дължината на окръжността.
- Създаване метод кръг клас, което се движи в центъра на кръга, в произволен момент координатна равнина квадрат с диагонал [-99; -99] до [99, 99]. Обърнете внимание на това, което искате да създадете конвенционален метод, приложим към съществуващ обект, а не конструктор създава нов обект.
- Промяна в конструктора по подразбиране Circle клас, така че в момента на създаване на обекта с помощта на координатите на центъра и радиуса на кръг потребителското клавиатура вход.
- Създаване на метод Circle клас изчисляване на разстоянието между центровете на два кръга.
- Създаване на метод Circle клас за проверка дали кръга в един момент докосване. Имайте предвид, че вариантът, когато един кръг се съдържа в друга, като по този начин все още е възможно да се докосне в един момент.