Резюме
Статическая переменная или метод или блок кода в классе - определяются для класса, для доступа может использоваться имя класса и нет никакой потребности создавать объект класса обращаясь к статическому члену класса.
статический блок инициализации - определенный блок, использующий ключевое слово, static, и выполняемый однажды при загрузке класс и может инициализировать только статических членов данных класса.
Абстрактный класс определяется для задания обобщённой формы, которая может быть разделена на подклассы.
Если класс абстрактный, то это означает что нельзя создать экземпляр такого класса.
Интерфейс - шаблон поведения (в форме методов), который другие классы должны осуществить.
Модификаторы доступа:
■ public
■ protected
■ private
Friendly - не ключевое слово, но в отсутствии любого модификатора на класс или переменную или метод, используется этот модификатор. Friendly означает, что переменные, методы или методы становятся дружественными, то есть к ним можно обратиться из любого класса в том же самом пакете.
Оболочка класса - простой класс, который заключает в капсулу единственное неизменное значение.
Внутренний класс - класс, внедрённый во внешний класс. Класс, определённый в другом классе называют внутренним классом.
Проверьте себя
1. Какое из следующих утверждений является правильным?
A. Абстрактный класс не может иметь никаких методов final
B. Класс final не может иметь никаких абстрактных методов
2. Какие минимальные изменения надо сделать для успешной компиляции данного кода?
final class Aaa
{
int ххх;
void yyy() { ххх = 1;}
}
class Bbb extends Aaa
{
final Aaa finalref = new Aaa();
{
System.out.println("ln Method yyy()");
finalref.xxx = 12345;
}
}
A. В 1 строке кода, удалить модификатор final
B. В 8 строке кода, удалить модификатор final
C. Удалить 11 строку кода
D. В 1 и 8 строках кода, удалить модификатор final
3. Какое утверждение является истинным для приложения ниже?
class StaticStuff
{
static int x= 10;
4.
static {x += 5;}
6.
public static void main(String args[])
{
System.out.printlnfx = " +x);
}
11.
static {x /= 5;}
}
A. Строки 5 и 12 не будут скомпилированы, потому что отсутствует названия методов и типов возвращаемых значений
B. Строка 12 не будет скомпилирована, потому что мы можем иметь только один статический инициализатор
C. Код успешно компилируется и в результат выполнения х = 10
D. Код успешно компилируется и в результат выполнения х = 15
E. Код успешно компилируется и в результат выполнения х = 3
4. Если класс - ________, то это указывает на то, что объекты такого класса создать нельзя.
А. Данный класс
В. abstract
С. final
D. Ни один из выше перечисленных
5. Модификатор доступа________ разрешает непосредственный доступ к классу, подклассам и всем классам, находящимся в различных акетах.
A. private
B. final
С. protected
D. Ни один из выше перечисленных
6. Какое из следующих утверждений является правильным? (выберите один или более ответов)
A. Внутренний класс может быть объявлен как private
B. Внутренний класс может быть объявлен как static
C. Внутренний класс, определенный в методе должен всегда быть анонимен
D. Внутренний класс, определенный в методе может обратиться ко всем методам и локальным переменным
Задание
1. Создать класс по имени StaticDemo, объявите статическую и нормальную переменную. Дайте начальные значения переменным 10 и 5 соответственно. Напечатайте значения переменных в методе main ().
2. Создать интерфейс с именем vehicle (транспортное средство). Добавьте два метода start () и stop () с одним параметром. Реализуйте интерфейс в двух классах названных bike (велосипед) и bus (автобус). Создайте другой класс с именем interfaceDemo. Создайте объекты bike и bus в методе main () из класса interfaceDemo и обеспечьте доступ к методам start () и stop ().