1. 상속이란? ( UML로 표현해볼 것!)
· 부모클래스에서 선언된 필드와 메소드를 자식클래스가 그대로 물려받는 것을 상속이라 정의하며 키워드는 extends를 사용한다.
· 자식클래스는 부모클래스의 모든 특성을 지니며, 자식클래스는 추가적인 특성을 더해서 가질 수 있다.
(상속의 목적: 공통으로 되어 있는 내용을 한 개의 클래스로 작성하여 상속받아 사용)
· ex) 상속이 대상이 되는 클래스: Man class, 상속을 하는 클래스: BusinessMan class
2. 부모클래스와 자식클래스의 다른 용어를 설명하시오.
· 부모클래스는 상속이 되는 클래스이며, 상위/기초 클래스라 정의한다.
· 자식클래스는 상속을 하는 클래스이며, 하위/유도 클래스라 정의한다.
3. super 키워드와 this 키워드의 차이
· super 키워드는 부모 클래스의 생성자를 호출하며 this 키워드는 자기 자신의 생성자를 호출한다. (super키워드 더 좋은 방법)
· ex) private은 같은 클래스 내에서만 사용 가능하므로, 아래 예시와 같이 super 키워드를 사용하여 Man의 생성자를 호출
4. 단일 상속과 다중 상속 이란?
· 단일 상속은 하나의 클래스가 단 하나의 클래스만을 상속하는 것이다. (java는 단일 상속만 가능)
· 다중 상속은 하나의 클래스가 여러개의 클래스를 상속하는 것이다.
· ex) 다중 상속은 C class가 A, B class 두 개를 상속 받을 수 있는 경우를 말한다.
5. 아래 예시를 참고하여 과목과 점수가 짝을 이루도록 2개의 배열을 작성하라.
· 참고
· 작성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
class Cost {
public static void main(String[] args) {
String course[] = { "Java", "C++", "HTML5", "컴퓨터구조", "안드로이드" };
int score[] = { 95, 88, 76, 62, 55 };
while (true) {
Scanner sc = new Scanner(System.in);
System.out.println("과목 이름을 입력해주세요. ");
String str;
str = sc.next();
if (str.equals("그만")) {
System.out.println("종료합니다.");
break;
}
for (int i = 0; i < course.length; i++) {
if (str.equals(course[i])) {
System.out.println(score[i]);
} else
System.out.println("없는 과목입니다.");
break;
}
}
}
}
|
cs |
6. 다음은 2차원 상의 한 점을 표현하는 Point 클래스이다. 아래를 참고하여 작성하시오.
· 참고
· 작성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
class ColorPoint extends Point {
String str;
public ColorPoint(int x, int y, String str) {
super(x, y);
this.str = str;
}
public void setXY(int x, int y) {
super.move(x, y);
}
public void setColor(String str) {
this.str = str;
}
public String toString(String str, int x, int y) {
return str + "색의 (" + super.getX() + "," + super.getY() + ") 의 점";
}
}
|
cs |
7. Point를 상속받아 색을 가진 점을 나타내는 ColorPoint 클래스를 작성하라.
· 참고
· 작성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
class ColorPoint extends Point{
String str;
public ColorPoint(){
this(0, 0, "BLACK");
}
public ColorPoint(int x, int y){
this(x, y, "BLACK");
}
public ColorPoint(int x, int y, String str){
super(x, y);
this.str = str;
}
public void setXY(int x, int y){
super.move(x, y);
}
public void setColor(String str){
this.str = str;
}
public String toString(String str, int x, int y){
return str + "색의 (" + super.getX() + "," + super.getY() + ") 의 점";
}
}
|
cs |
8. Point를 상속받아 3차원의 점을 나타내는 Point3D 클래스를 작성하라.
· 참고
· 작성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
class Point3D extends Point{
private int z;
public Point3D(int x, int y, int z) {
super(x, y);
this.z = z;
}
public String toString() {
return "(" + super.getX() + "," + super.getY() + "," + z + ") 의" ;
}
public int moveUp() {
return z = z + 1;
}
public int moveDown() {
return z = z - 1;
}
public void move(int x, int y) {
super.move(x, y);
}
public void move(int x, int y, int z) {
super.move(x, y);
this.z = z;
}
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
|
class Point3Dmain {
public static void main(String[] args) {
Point3D p = new Point3D(1,2,3);
System.out.println(p.toString() + " 점입니다.");
p.moveUp();
System.out.println(p.toString() + " 점입니다.");
p.moveDown();
p.move(10, 10);
System.out.println(p.toString() + " 점입니다.");
p.move(100, 200, 300); // x, y, z축으로 이동
System.out.println(p.toString() + " 점입니다.");
}
}
|
cs |
9. 배열을 이용하여 간단한 극장 예약 시스템을 작성해보자.
아주 작은 극장이라서 좌석이 10개 밖에 되지 않는다.
사용자가 예약을 하려고 하면 먼저 좌석 배치표를 보여준다.
예약이 끝난 좌석은 1로, 예약이 되지 않은 좌석은 0으로 나타낸다.
· 참고
· 작성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
class game {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] ar1 = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int[] ar2 = new int[10];
for(int e : ar1) {
System.out.print(e + " ");
}
System.out.println();
System.out.println("--------------------");
for(int i = 0; i < ar2.length; i++) {
System.out.print(ar2[i] + " ");
}
while(true) {
System.out.println();
System.out.print("몇번째 좌석을 예약하시겟습니까?");
int num = sc.nextInt();
for(int e : ar1) {
System.out.print(e + " ");
}
System.out.println();
for(int i = 0; i < ar1.length; i++) {
if(num == ar1[i]) {
ar2[i] = 1;
}
}
System.out.println("--------------------");
for(int i = 0; i < ar2.length; i++) {
System.out.print(ar2[i] + " ");
}
}
}
}
|
cs |
'bitcamp > 면접족보' 카테고리의 다른 글
면접족보 20/12/14_인터페이스, 추상클래스 개념 (0) | 2021.01.31 |
---|---|
면접족보 20/12/11_다형성, 오버라이딩 (0) | 2021.01.31 |
면접족보 20/12/09_배열 (0) | 2021.01.30 |
면접족보 20/12/08_String 클래스의 메소드 (0) | 2021.01.24 |
면접족보 20/12/07_메소드 오버로딩 (0) | 2021.01.24 |