1. 자바의 클래스와 객체에 대한 설명 중 틀린 것은?
① 객체를 인스턴스라고도 부른다.
② 클래스는 객체를 생성하기 위한 틀이다.
③ 클래스는 필드와 메소드로 구성된다.
④ 클래스의 필드들은 private 보다는 public으로 선언하는 것이 바람직하다.
2. 생성자에 대한 설명 중 잘못된 것은?
① 한 클래스에 여러 개의 생성자가 있어도 된다.
② this()는 생성자에서 다른 생성자를 호출하는 코드이다.
③ 생성자에서는 this 레퍼런스를 사용할 수 없다.
④ 생성자는 객체 당 오직 한 번만 호출된다.
3. 다음 중 Circle 클래스의 배열 생성 문에서 오류가 없는 것은?
① Circle c[] = new Circle[];
② Circle []c = new Circle();
③ Circle []c = new Circle[5];
④ Circle c[] = new Circle[5]();
4. 다음은 static 멤버에 대한 설명이다. 보기에서 빈칸에 적절한 말을 삽입하라.
static 멤버는 클래스 멤버라고도 불리며, 동일한 클래스의 모든 객체들에 의해 공유된다. static 멤머는 개체 레퍼런스나 클래스 이름으로도 접근할 수 있으며, 객체가 생성되기 전 프로그램이 시작될 때 생성되어 있다. 특히 static 메소드는 static 멤버들만 접근할 수 있고, this을(를) 사용할 수 없는 제약 사항이 있다.
5. 다음은 메소드 오버로딩이 성공한 사례인가, 실패한 사례인가?
class A {
int x;
void f(int x) {this.x = x; }
int f(int x, int y) { return x*y; }
}
답: 메소드의 매개변수의 개수가 다르기때문에 성공한 사례이다.
6. 다음은 객체 소멸에 대한 설명이다. 보기에서 빈칸에 적절한 말을 삽입하라.
자바에서는 객체를 임의로 소멸시킬 수 없으며, 이것은 개발자에게 매우 다행한 일이다. 참조하는 레퍼런스가 하나도 없는 객체를 가비지라고 판단하고, 가비지를 사용 메모리로 자동 수집하는 가비지 컬렉션을 진행시킨다. 응용프로그램에서 자바 플랫폼에 이 과정을 지시하고자 하면 System.gc()코드를 호출하면 된다.
7. 다음 소스에 오류는 없지만, 객체 지향 프로그래밍 관점에서 바람직한 코드로 수정하라.
class Person {
public int age;
}
public class Example {
public static void main(String args[]) {
Person a = new Person();
a.age = 17;
}
}
답:
class Person {
private int age;
Person(int age) {
this.age = age;
}
}
public class Example {
public static void main(String args[]) {
Person a = new Person(17);
}
}
8. 다음 프로그램의 실행 결과는 무엇인가?
class Number {
int n;
public Number(int n) { this.n = n; }
}
public class Example {
static void plusTen(Number x) { x.n += 10; }
public static void main(String args[]) {
Number ob = new Number(5);
plusTen(ob);
system.out.println(ob.n);
}
}
답: 15
9. 다음 Rectangle 클래스의 두 생성자를 this()가 없는 코드로 바꾸어라.
public class Rectangle {
int w,h;
Rectangle(int w, int h) {
this.w = w; this.h = h;
}
Rectangle(int w) {
this(w,2);
}
Rectangle() {
this(1);
}
}
답:
public class Rectangle {
int w,h;
Rectangle(int w, int h) {
this.w = w; this.h = h;
}
Rectangle(int w) {
this.w = w; this.h = 2;
}
Rectangle() {
this.w = 1; this.h = 2;
}
}
10. 다음 중 가비지가 발생하는 것은?
답: 4번
11. 다음 멤버 함수의 사용이 잘못된 것은?
public class StaticTest {
static int a;
static int getA() { return a; } // 1
int b;
int getB() { return b; } // 2
int f() { return getA(); } // 3
static int g() { return getB(); } // 4
}
답: 4번
12. 다음 코드에서 잘못된 문장은?
class StaticSample {
int x;
static int y;
static int f() { return y; }
}
public class UsingStatic {
public static void main(Stirng [] args) {
StaticSample.x = 5; // 1
StaticSample.y = 10; // 2
int tmep = StaticSample.f(); // 3
StaticSample a = new StaticSample();
temp = a.y; // 4
}
}
답: 1번
'JAVA' 카테고리의 다른 글
[JAVA] for-each문 사용방법 (0) | 2023.08.08 |
---|---|
명품 자바 에센셜 4강 실습문제 (0) | 2022.03.17 |
명품 자바 에센셜 3강 실습문제 (0) | 2022.03.10 |
명품 자바 에센셜 3강 이론문제 (0) | 2022.03.09 |
명품 자바 에센셜 2강 실습문제 10번 (0) | 2022.03.07 |