Java руководство для начинающих - Шилдт Герберт (2012)
-
Год:2012
-
Название:Java руководство для начинающих
-
Автор:
-
Жанр:
-
Оригинал:Английский
-
Язык:Русский
-
Издательство:Вильямс
-
Страниц:316
-
ISBN:978-5-8459-1770-6
-
Рейтинг:
-
Ваша оценка:
Java руководство для начинающих - Шилдт Герберт читать онлайн бесплатно полную версию книги
Допустим, требуется член класса, к которому могут обращаться только другие члены
этого же класса. Какой модификатор доступа следует использовать в его объявлении?
Модификатор доступа private.
Имя метода и список его параметров вместе составляют метода.
сигнатуру
Если методу передается значение типа int, то в этом случае используется передача
параметра по .
значению
Создайте метод sum () с аргументами переменной длины для суммирования передаваемых ему значений типа int. Метод должен возвращать результат суммирования.
Продемонстрируйте его в действии.
Существует много вариантов решения данной задачи. Ниже представлен один из них.
Приложение А. Ответы на вопросы для самопроверки 571
class Sumlt {
int sum(int ... n) {
int result = 0;
for(int i = 0; i < n.length; i++)
result += n[i];
return result;
}
}
class SumDemo {
public static Void main(String args[]) {
Sumlt siObj = new Sumlt();
int total = siObj.sum(l, 2, 3);
System.out .println (1,Sum is " + total);
total = siObj.sum(l, 2, 3, 4, 5);
System.out.println("Sum is " + total);
}
}
Можно ли перегружать метод с аргументами переменной длины?
Да, можно.
Приведите пример неоднозначного вызова перегружаемого метода с переменным
числом аргументов.
Ниже приведен один из вариантов перегружаемого метода с переменным числом аргументов, при вызове которого проявляется неоднозначность.
double myMeth(double ... v ) { // ...
double myMeth(double d, double ... v) { // ...
Если попытаться вызвать метод myMeth () с одним аргументом следующим образом:
myMeth(1.1);
то компилятор не сможет определить, какой именно метод вызывается.
Глава 7. Наследование
Имеет ли суперкласс доступ к членам подкласса? Имеет ли подкласс доступ к членам суперкласса?
Нет, не имеет. Суперклассу ничего не известно о существовании подклассов.
Подклассы действительно могут обращаться ко всем членам суперкласса, кроме тех,
которые объявлены как закрытые (private).
Создайте подкласс Circle, производный от класса TwoDShape. В нем должен
быть определен метод area (), вычисляющий площадь круга, а также конструктор
с ключевым словом super для инициализации членов, унаследованных от класса
TwoDShape.
// Подкласс, производный от класса TwoDShape для формы круга,
class Circle extends TwoDShape {
// Конструктор по умолчанию
Circle () {
super();
}
// Конструктор класса Circle
Circle(double х) {
super(x, "circle"); // вызвать конструктор суперкласса
}
// создать новый объект из имеющегося объекта
Circle(Circle ob) {
super(ob); // передать объект конструктору класса ?PwoDShape
}
double area () {
return (getWidth() /2) (getWidth() / 2) 3.1416;
}
}
Как предотвратить обращение к членам суперкласса из подкласса?
Для того чтобы предотвратить доступ к членам суперкласса из подкласса, эти члены
следует объявить как закрытые (private).
Опишите назначение и два варианта использования ключевого слова super.
Ключевое слово super используется в двух случаях. Во-первых, с его помощью вызывается конструктор суперкласса. В этом случае общая форма вызова имеет следующий вид:
super (списокпараметров) ;
И во-вторых, это ключевое слово обеспечивает доступ к членам суперкласса. Ниже
приведена общая форма такого доступа.
super.членкласса
Допустим, имеется следующая иерархия классов:
class Alpha { ...
class Beta extends Alpha { ...
Class Gamma extends Beta { ...
В каком порядке вызываются конструкторы этих классов при создании объекта
класса Gamma?