Тема 3. Введение в классы JAVA. Методоы и классы. Классы и наследование в JAVA. Пакеты и интерфейсы
3.1. Классы и объекты
Вопросы
1. Что такое класс?
2. С помощью какого ключевого слова создаются классы?
3. Что такое объект?
4. Что относится к членам класса?
Тест
1. В какой строчке ошибка:
class Scope {
public static void main(String args[]) {
int x;
x=10;
if(x==10) {
int y=20;
System.out.println(“x и y:” +x+” ”+y);
x=y*2;
}
y=100; // у здесь не известна
System.out.println(“x равно” +x);
}}
2. Оператор, который создает экземпляр указанного класса и возвращает ссылку на вновь созданный объект:
2.1. this
2.2. valueof()
2.3. оператор точка
2.4. new
3. Какие действия производятся в следующей строке: Box mybox= new Box();
3.1. объявляется ссылка на объект
3.2. распределяется память для Box-объекта
3.3. объявляется ссылка на объект и распределяется память для Box-объекта
3.4. реализуется Box-объект
3.5. нет правильного ответа
4. Какое ключевое слово указывает на то, что «имя_класса» — это подкласс класса «имя_суперкласса»:
4.1. class
4.2. new
4.3. extends
4.4. this
4.5. super
Ответы на тесты: …(1) в 10-й…(2) 2.4…(3) 3.3…(4) 4.3…
3.2. Динамическая инициализация объекта
Вопросы
1. Что такое объект?
2. Оператор, распределяющий динамически память для объекта и возвращающий ссылку на него?
3. Какой оператор используется для доступа к переменным и методам объекта?
Тест
1. Выбрать правильную форму записи оператора new:
1.1. classname = new class - var();
1.2. class name – var = new classname();
1.3. new class –var = classname();
1.4. class-var = new classname();
Где class – var – переменная типа «класс», которая создается; classname – имя класса, экземпляр которого создается.
2. Оператор, который создает экземпляр указанного класса и возвращает ссылку на вновь созданный объект:
2.1. this
2.2. valueof()
2.3. оператор точка
2.4. new
3. Оператор new распределяет память для объекта:
3.1. перед выполнением
3.2. во время выполнения
3.3. при недостатке памяти
3.4. после выполнения
4. Какой результат выполнения программы:
class Point
{int x,y;
}
class TwoPoints {
public static void main(String args[]) {
Point p1 = new Point();
Point p2 = new Point();
p1.x = 10;
p1.y = 20;
p2.x = 42;
p2.y = 99;
System.out.println("x = " + p1.x + " y = " + p1.y);
System.out.println("x = " + p2.x + " y = " + p2.y);
} }
4.1. х = 10 у = 20 х = 42 у = 99
4.2. х = 10 у = 99 х = 42 у = 20
4.3. х = 42 у = 20 х = 10 у = 99
4.4. х = 10 у =42 х = 20 у = 99
4.5. нет правильного ответа
5. Какие действия производятся в следующей строке: Box mybox= new Box();
5.1. объявляется ссылка на объект
5.2. распределяется память для Box-объекта
5.3. объявляется ссылка на объект и распределяется память для Box-объекта
5.4. реализуется Box-объект
5.5. нет правильного ответа
Ответы на тесты: …(1) 1.2, 1.4…(2) 2.4…(3) 3.2…(4) 4.1…(5) 5.3…
3.3. Ссылочные переменные объекта
Вопросы
1. Что такое объект?
2. Оператор, распределяющий динамически память для объекта и возвращающий ссылку на него?
3. Для чего необходимо использовать ссылочные переменные?
4. Какой оператор используется для доступа к переменным и методам объекта?
Тест
1. При назначении одной ссылочной переменной другой создается:
1.1. копия объекта
1.2. копия переменной
1.3. копия ссылки
1.4. еще одна переменная
2. В результате выполнения программы:
Box b1= new Box();
Box b2= b1;
//...
b1=null;
2.1. b2 и b1 установлены в null
2.2. b1 и b2 указывают на первоначальный объект
2.3. b1 установлен в null, но b2 указывает на первоначальный объект
2.4. нет правильного ответа
2.5. все ответы верны
3. В результате выполнения программы:
Box b1= new Box();
Box b2= b1;
3.1. переменной b2 назначается ссылка на копию объекта, на которую ссылается
3.2. b1 и b2 обращаются к отдельным и различным объектам
3.3. b1 и b2 ссылаются на один и тот же объект
3.4. все ответы верны
4. Что происходит при назначении b1 переменной b2 (Box b1= new Box();
Box b2= b1; )
4.1. распределяется память
4.2. копируется какая-либо часть первоначального оьъекта
4.3. помещается в b2 ссылка из b1
4.4. переменной b2 назначается ссылка на копию объекта, на которую ссылается
5. Каков будет результат следующего примера?
class Point{
public int x;
public int y;
public Point(int newX,int newY){
x=newX;
y=newY;
}
public void print(int p){
System.out.println(p);
}
public static void main(String args[]){
Point p = new Point(1, 2);
int a=p.x;
p = new Point(3, 4);
p.print(a);
}
}
5.1. 3
5.2. 2
5.3. 1
5.4. 4
Ответы на тесты: …(1) 1.3…(2) 2.3…(3) 3.3…(4) 4.3…(5) 5.3…
3.4. Ограничение доступа к элементам
Вопросы
1. Какие уровни доступа используются в языке Java?
2. Какой используется спецификатор, для того чтобы доступ к элементу получал только член этого же класса
3. Для чего используются спецификаторы public, private и protected?
4. Какие модификаторы позволяют обращаться к элементу из классов того же пакета?
5. Какой модификатор дает доступ наследникам класса
Тест
1. Элемент объявленный как public будет:
1.1. доступен из любой точки программы
1.2. доступен только для членов этого же класса
1.3. доступен для членов собственного класса и членов производных классов
1.4. доступен только для членов производных классов
2. В Java модификаторы доступа указываются для :
2.1. типов (классов, интерфейсов) объявления верхнего уровня
2.2. элементов ссылочных типов(полей, методов, внутренних типов )
2.3. конструкторов класса
2.4. все ответы верны
3. Какой спецификатор используется по умолчанию, когда никакой модификатор не указан:
3.1. protected
3.2. private
3.3. friendly
3.4. public
3.5. любой
4. Какой из элементов языка Java всегда доступен, т.к. не имеет модификатора доступа:
4.1. массивы
4.2. пакеты
4.3. элементы и конструкторы объектных типов
4.4. типы верхнего уровня объявления
4.5. все ответы верны
Ответы на тесты: …(1) 1.1…(2) 2.4…(3) 3.3…(4) 4.2…
3.5. Методы класса, конструкторы, параметризация методов
Вопросы
1. Какое назначение у конструктора?
2. Что появится на консоли после вызова конструктора следующего класса:
class Test{
private long id=getId();
private String name=getName();
private String login;
public Test(String domain) {
login= domain+ " "+name;
System.out.println(login);
}
private static long getId () {
int id = 3;
//System.out.println( id);
return(id);
}
private String getName() {
String name="name"+getId();
//System.out.println(name);
return(name);
}
public static void main(String args[])
{
Test t=new Test("bsuir");
}
}
Результат:
bsuir name 3
3. Как записывается заголовок метода main?
4. Результат работы программы:
class Box{
double width;
double height;
double square() {
return width* height;
}
void setDim (double w, double h) {
width=w;
height=h;
}}
class BoxDemo5 {
public static void main (String args[]){
Box mybox1 = new Box();
Box mybox2 = new Box();
double sq;
mybox1. setDim(5, 3);
mybox2. setDim (4, 6);
sq = mybox1. square();
System.out.println(“площадь равна” + sq+”см2”);
sq = mybox2. square ();
System.out.println(“площадь равна” + sq+”см2”);
}}
Результат
Площадь равна 15 см2
Площадь равна 24 см2
Тест
1. Методы являются частью:
1.1. бъектов
1.2. элементов
1.3. операций
1.4. классов
1.5. нет правильного ответа
2. Если конструктор определен, то он:
2.1. автоматически вызывается сразу же после того, как объект создается, и прежде, чем завершается выполнение операции new
2.2. автоматически вызывается сразу же после того, как объект создается
2.3. автоматически вызывается прежде чем завершается выполнение операции new
2.4. нет правильного ответа
2.5. все ответы верны
3. Конструктор имеет (выбрать правильный ответ):
3.1. спецификатор возвращаемого типа
3.2. название такое же как и класс
3.3. спецификатор void
3.4. имя отличное от имени класса
3.5. все ответы верны
4. Результат работы программы:
class worker
{ private int Age;
public String Name;
public worker()
{ Age = 20;}
public worker(int newAge, String newName)
{ Age = newAge;
Name = newName;
}
public int getAge()
{return Age;}
};
class worker_pub
{ public static void main(String args[])
{ worker wrk1 = new worker( );
worker wrk2 = new worker(40, "Petrov");
System.out.println(wrk1. getAge()+wrk1.Name);
System.out.println(wrk2. getAge()+wrk2.Name);
}
}
4.1. 40
null
20
Petrov
4.2. 20
null
40
Petrov
4.3. 20
Petrov
40
null
4.4. 20
40
Petrov
4.5. 40
Petrov
5. Результат работы программы:
class A {
int X;
int Y;
int Z;
A(int x, int y)
{ Y=y;
X=x; }
public int Fun()
{ return Z=X*Y; }
}
class UMN
{ public static void main(String args[])
{
A a=new A(5,6);
System.out.println("The Result is"+a.Fun());
}
}
5.1. The Result is 30
5.2. The Result is 5
5.3. The Result is 6
5.4. некорректный код
Ответы на тесты: …(1) 1.4…(2) 2.1…(3) 3.2…(4) 4.2…(5) 5.1…
3.6. Использование ключевого слова this
Вопросы
1. Когда используется ключевое слово this?
2. Какой будет результат программы(a=5, b=0,c=0):
class Test{
int b;
int c;
int a;
public Test()
{b=a;
c=this.a;
a=5;
System. out. println("a="+a+", b="+b+",c="+c);;
}
public static void main (String s[]) {
new Test();
}
}
Тест
1. Каким будет результат работы программы:
class Human
{
private String name;
public Human (String s){
name=s;
System. out. println(this.name+" is registered.");
}
public static void main (String s[]) {
new Human("John");
}
}
1.1. John is registered;
1.2. John
1.3. is registered
1.4. register
1.5. нет правильного ответа
2. Результат работы программы:
class Point {
int x, y;
Point(int x, int y) {
this.x = x;
this.y = y;
}
double distance(int x, int y) {
int dx = this.x - x;
int dy = this.y - y;
return Math.sqrt(dx*dx + dy*dy);
}
double distance(Point p) {
return distance(p.x, p.y);
} }
class PointDist {
public static void main(String args[]) {
Point p1 = new Point(0, 0);
Point p2 = new Point(30, 40);
System.out.println("p1 = " + p1.x + ", " + p1.y);
System.out.println("p2 = " + p2.x + ", " + p2.y);
System.out.println("p1.distance(p2) = " + p1.distance(p2));
System.out.println("p1.distance(60, 80) = " + p1.distance(60, 80));
} }
2.1. р1 = 0, 0 р2 = 30, 40 р1.distance(p2) =0
p1.distance(60, 80) = 100.0
2.2. р1 = 0, 0 р2 = 30, 40 р1.distance(p2) =30.0
p1.distance(60, 80) = 40.0
2.3. р1 = 0, 0 р2 = 30, 0 р1.distance(p2) = 30.0
p1.distance(60, 80) = 60.0
2.4. р1 = 0, 0 р2 = 30, 40 р1.distance(p2) =50.0
p1.distance(60, 80) = 60, 80
2.5. р1 = 0, 0 р2 = 30, 40 р1.distance(p2) =p2
p1.distance(60, 80) = 60, 80
3. Результат работы программы:
class Point {
int x, y;
void init(int x, int y) {
this.x = x;
this.y = y;
} }
class TwoPointsInit {
public static void main(String args[]) {
Point p1 = new Point();
Point p2 = new Point();
p1.init(10,20);
p2.init(42,99);
System.out.println("x = " + p1.x + " y = " + p1.y);
System.out.println("x = " + p2.x + " y = " + p2.y);
} }
3.1. х = 10 у = 20 х = 42 у = 99
3.2. х = 10 у = 99 х = 42 у = 20
3.3. х = 42 у = 20 х = 10 у = 99
3.4. х = 10 у =42 х = 20 у = 99
3.5. нет правильного ответа
Ответы на тесты: …(1) 1.1…(2) 2.3…(3) 3.1…
3.7. Сборка мусора
Вопросы
1. Для чего предназначен процесс сборки мусора?
2. Можно ли явно очистить память, выделенную под объект динамически
3. Регулярно ли происходит процесс сборки мусора?
Тест
1. Как выполняется освобождение памяти от объекта в Java?
1.1. автоматически
1.2. вручную
1.3. с помощью оператора delete
1.4. нет правильного ответа
2. Приоритет процесса сборки мусора?
2.1. очень низкий
2.2. высокий
2.3. очень высокий
2.4. нет приоритета
Ответы на тесты: …(1) 1.1…(2) 2.1…
3.8. Перегрузка и переопределение методов
Вопросы
1. Что такое перегруженные методы?
2. Если метод использует переменную класса, должна ли она быть объявлена выше объявления метода?
3. Может ли измениться содержимое переменной типа String, если предать
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.