IT 면접 족보32

권단비·2023년 2월 13일
0

IT

목록 보기
68/139

1. 아래가 메인에서 되돌아 가도록 하시오.

    	Object obj = new Circle(10);
    	System.out.println(obj);

▼정답

class Object {

	protected double r;

	public Object(int r) {
		this.r = r;
	}

	public double getArr(double r) {
		return this.r * this.r * Math.PI;
	}
}

class Circle15 extends Object {
	public Circle15(int r) {
		super(r);
	}

	@Override
	public String toString() {
		return "출력: 넓이는 " + super.getArr(r) + "입니다.";
	}
}

public class Test52 {
	public static void main(String[] args) {
		Object obj = new Circle15(10);
		System.out.println(obj); // 출력 : 넓이는 314.1431234입니다. (예시)
	}
}

2. class이름 및 함수에서 final의 의미는?

▼정답

public final class MyLastCls{...}
⇒MyLastCls 클래스는 다른 클래스가 상속할 수 없음

class Simple{public final void func(int n)}
⇒아래의 메소드는 다른 클래스에서 오버라이딩 할 수 없음

3. interface 와 class 의 차이는?

▼정답

1. interface = 상수와 + abstract(추상)함수(바디가 없는 함수)
2. interface에는 변수가 올 수 없다.
인터페이스(interface) = 자손이 구현하라. (갑→을이 구현)
2개 이상의 클래스를 상속받을 수 있다.
예시)
class C implements A, B{}

class는 두 개의 클래스를 상속 받을 수 없다.

4. @Override 에 대하여 설명하시오.

▼정답

애너테이션
개발자가 부모에 있는 함수(똑같은 이름이 있는)를 체크해서 없으면 컴파일 에러를 내라

5. abstract 키워드에 대하여 설명하시오.

▼정답

abstract(추상)함수(바디가 없는 함수)

interface Printable {
	void print(String doc); // 추상 메소드 public abstract void print(String doc) 이 생략되어 있다.
}
//인터페이스의 정의! 메소드의 몸체를 갖지 않는다.
//따라서 인스턴스 생성 불가! 참조변수 선언 가능

6. 아래가 컴파일 에러가 나는 이유에 대하여 설명하시오.

try {
		int num = 6 / 0;
} catch (Exception e) {
		e.printStackTrace();
} catch (InputMismatchException e) {
		e.printStackTrace();
}

▼정답

Exception e 에서 다 잡아서 밑의 InputMismatchException e는 불필요해서 컴파일 에러가 발생한다.

7.실시간 에러와 컴파일 에러의 차이는?

▼정답

콜스택 : JVM이 쌓는다.
실시간 에러처리 메커니즘

1.컴파일 에러
  - 주체 : 컴파일 시점에서 발생하는 에러
  - 프로그램이 그 자리에서 프로그램을 중단시키고 객체로 표현한다.
   ex) ';'(세미클론)이 누락된 문법 에러
       괄호가 맞지 않는 구문 에러
       interface 사용 시 함수의 구체적인 내용을 적지 않은 에러

2.실시간 에러
  - 주체 : JVM
  - JVM은 티비의 메인
   ex) NullPointerException(생성되지 않은 객체를 참조할 때 발생)
       Infinite Loop(무한 루프)
       ArithmeticException(0으로 나눴을 때 발생)

8.실시간 에러와 컴파일 에러중 누가 더 좋은 것인가?

▼정답

컴파일 에러
실행하기 전에 에러를 알 수 있어서 더 좋다.

9.실시간 에러는 내는 주체는?

▼정답

NullPointerException(생성되지 않은 객체를 참조할 때 발생)
Infinite Loop(무한 루프)
ArithmeticException(0으로 나눴을 때 발생)

10. try catch finally 에 대하여 설명하시오.

▼정답

try ~ catch 사용하는 이유

① 안 죽이려고

JVM은 에러가 나오면 그 자리에서 중단시키는 역할인데,
try ~ catch를 사용하면 개발자가 try{}안의 내용에서 에러 발생 시 책임을 지겠다는 것.
try{} : 에러가 발생할 수 있는 코드를 넣는다.
catch{} : 에러 발생 시 catch 안에 넣은 내용으로 출력
finally{} : 정상 실행이든 에러가 나든 무조건 실행 됨.

0개의 댓글