Java руководство для начинающих - Шилдт Герберт (2012)
-
Год:2012
-
Название:Java руководство для начинающих
-
Автор:
-
Жанр:
-
Оригинал:Английский
-
Язык:Русский
-
Издательство:Вильямс
-
Страниц:316
-
ISBN:978-5-8459-1770-6
-
Рейтинг:
-
Ваша оценка:
Java руководство для начинающих - Шилдт Герберт читать онлайн бесплатно полную версию книги
System.out.println("Width and height are " +
width + " and " + height);
}
}
// Подкласс, производный от класса TwoDShape,
// для представления треугольников,
class Triangle extends TwoDShape {
private String style;
Triangle(String s, double w, double h) {
// Использование оператора super () для вызова
// конструктора класса TwoDShape.
super(w, h); // вызвать конструктор суперкласса
style = s;
}
double area() {
return getWidth() * getHeight() / 2;
}
void showStyle() {
System.out.println("Triangle is " + style);
}
}
class Shapes4 {
public static void main(String args[]) {
Triangle tl = new Triangle("isosceles", 4.0, 4.0);
Triangle t2 = new Triangle("right", 8.0, 12.0);
System.out.println("Info for tl: ") ;
tl.showStyle();
tl.showDim();
System.out.println ("Area is " + tl.areaO);
System.out.println();
System.out.println("Info for t2: ") ;
t2.showStyle();
t2.showDim();
System.out.println("Area is " + t2.area());
}
}
В конструкторе Triangle присутствует вызов конструктора super () с параметрами w и h. В результате управление получает конструктор TwoDShape (), инициализирующий переменные width и height значениями, передаваемыми ему в качестве параметров. Теперь класс Triangle уже не занимается инициализацией элементов суперкласса. Он должен инициализировать только собственную переменную экземпляра style. Конструктору TwoDShape () предоставляется возможность построить соответствующий подобъект так, как требуется для данного класса. Более того, в суперклассе TwoDShape можно реализовать функции, о которых не будут знать его подклассы. Благодаря этому код становится более устойчивым к ошибкам.
Любая форма конструктора, определенного в суперклассе, может быть вызвана с помощью оператора super (). Для выполнения выбирается тот вариант конструктора, который соответствует указываемым аргументам. В качестве примера ниже приведена расширенная версия классов TwoDShape и Triangle, содержащих конструкторы по умолчанию и конструкторы, принимающие один или более аргумент.
// Добавление дополнительных конструкторов в класс TwoDShape.
class TwoDShape {
private double width;
private double height;
// Конструктор по умолчанию.
TwoDShape() {
width = height = 0.0;
}
// Параметризированный конструктор.
TwoDShape(double w, double h) {
width = w;
height = h;
}
// Конструирование объекта с одинаковыми значениями
// переменных экземпляра width и height.
TwoDShape(double х) {
width = height = x;
}
// Методы доступа к переменным экземпляра width и height.
double getWidth() { return width; }
double getHeight() { return height; }
void setWidth(double w) { width = w; }
void setHeight(double h) { height = h; }
void showDim() {
System.out.println("Width and height are " +
width + " and " + height);
}
}
// Подкласс, производный от класса TwoDShape,.
// для представления треугольников,
class Triangle extends TwoDShape {
private String style;
// Использование оператора super () для вызова
// разных вариантов конструктора TwoDShape() .
// Конструктор по умолчанию.
Triangle() {
super(); // вызвать конструктор суперкласса по умолчанию
style = "null";
}
// Параметризированный конструктор.
Triangle(String s, double w, double h) {
super(w, h); // вызвать конструктор суперкласса с двумя аргументами
style = s;
}
// Конструктор с одним аргументом.