блока, чтобы после завершения выполнения его кода, произошёл
выход из оператора
. Если
вы не
напишете
, то
напечатаются все четыре строки, не смотря на то, что значение переменной yourGrade имееттолькооднозначение.
Раньше оператор switch имел ограничение – переменная, которая в негопередаётся , должна была иметь один из следующихтипов :
char int byte short enum
Начиная с Java 1.7 , тип String так же может использоваться в операторе switch. Кроме того , благодаря автобоксингу, который появился в Java 1.5 могут использоваться типы обёртки: Character,
Byte, Short,и Integer.
Какдолгоживутпеременные?
Внутри метода convertGrades() класса ReportCard объявляется переменная grade. Переменная , объявленнаявнутрилюбогометода называется локальной. Это означает, что она существует и доступна только внутри этого метода . После того, как мет од выполнился, локальнаяпеременнаяавтоматическиудаляетсяизпамяти.
Статические атрибуты класса используются для хранения значений общихдлявсехэкземпляровкласса.
Например, метод convertGrades() может быть объявлен в классе ReportCard как статический,потомучтовреализацииэтогометодадля чтения и записи не используются атрибуты , специфичные для конкретногоэкземпляракласса. Статическийметод sqrt() изкласса Math можновызыватьвоттак :
doublesquareRoot = Math.sqrt(4.0);
Специальныеметоды:конструкторы
В Java длясозданияэкземпляровклассовивыделенияподнихпамяти используетсяоператор new, например:
Fish myFish = new Fish();
Fish говорят о том, что у этого класса
Круглые с кобки после слова
конструкторами( constructors)
определен метод Fish(). Такиесть,существуютспециальныеметоды,
“ругаться” на выражение new Fish(), даже если в классе
Fish вы не
объявилиниодногоконструктора.
Восновном,конструкторыиспользуютсядляприсваиванияначальных значенийатрибутамкласса,кпримеру , следующаяверсиякласса Fish включает конструктор с одним аргументом , который задаё т начальное значение атрибута currentDepth равным значению аргументаконструктора.
public classFishextendsPet {
intcurrentDepth;
Fish(int startingPosition){
currentDepth=startingPosition;
}
}
Теперькласс FishMaster можетсоздатьэкземплярк ласса Fish изадать начальное положение рыб ки. Ниже создаётся экземпляр класса Fish, который изначальнопогружаетрыбку вморенаглубин у 20метров:
Fish myFish = new Fish(20);
Для класса, в котором был определён конструктор с аргументами, конструкторп оумолчаниюсоздаватьсяавтоматическинебудет. Если вамнеобходимконструкторбезаргументов напишитеего.
Ключесловоеthis
Ключевое слово this полезно, когда нужно сослаться на экземпляр классавнутриобъектаэтогокласса.Рассмотрим следующийпример :
помогает избежать конфликта имён,например this.currentDepth ссылается на атрибут класса currentDepth, в то время как currentDepth ссылается на значение аргумента конструктора.
Другими словами, экземпляр класса Fish указывает на самого себяспомощьюслова this.
this,
вы
Как передаватьданныемеждуклассами
Другой важный пример использования ключевого слова