2023-02-13 월 / JAVA

권혁현·2023년 2월 13일
0

Java

목록 보기
31/44
post-thumbnail

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

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

class Circle {
	private double radius;

	Circle(double radius) {
		this.radius = radius;
	}

	double getArea() {
		return Math.PI * radius * radius;
	}
    
	@Override
	public String toString() {
		return ("넓이는 " + getArea() + " 입니다.");
	}
}

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

  • final class: 마지막 클래스이다. → 클래스가 더 이상 다른 상속할 수 없다.

  • final mehod: 마지막 함수이다. → 다른 클래스에서 overriding 할 수 없다.

3. interface 와 class 의 차이는?

  • interface
    interface + interface명 ();→ 함수 선언부(정의), body없음 (당연히 생성자 만들 수 없음) = 추상메소드
    implements 키워드로 인터페이스를 구현할 (자손)클래스 표시
    둘 이상의 다중 인터페이스 구현 가능 (implements A, B 쉼표로 구분)
    body가 없으므로 객체 생성 불가, 선언 혹은 구현만 가능함
    무조건 public 이어야 한다.
    이름은 -able 혹은 I+이름으로 짓는 것이 관례

  • class
    class + class명 () {body} → body 있음(함수, 변수 모두 올 수 있다.)
    extends 키워드로 상속 표시함
    단일 상속만 가능함 (자식이 상속) / 다중 상속 안됨
    객체 생성 가능
    → interface와 class를 동시에 상속, 구현 가능

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

  • 아래의 함수를 오버라이딩 하겠다고 정의 하는 것.
    오버라이딩 하려는 함수를 부모가 갖고있는지 확인 하기 위해 사용.

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

  • 추상클래스를 의미하며 참조, 변수선언이 가능하지만 객체 생성은 불가하다.
    인터페이스 내에 있는 함수의 body부분이 없고 선언 부분만 있기 때문에 구현은 자손 클래스에서 해야한다.(자손이 구현!)

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

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

  • Exception이 InputMismatchException보다 상위 클래스에 위치하고 있으므로 모든 예외 상황을 체크할 수 있다.
    그래서 여기에서 모든 예외가 처리 되기 때문에 세부 체크를 하는 InputMismatchException이나 ArithmeticException 등이 그 아래 catch로 온다면 사실상 그 문장을 통과할 일이 없기 때문에 불필요한 코드임을 알려주기 위해 에러가 난다.

  • !!! Polymorphism이 핵심 !!!

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

  • 컴파일 에러 (Compillation Error)
    코드에 오류가 있을 시 컴파일 단계에서 미리 발견 할 수 있다.

  • 실시간 에러 (Runtime Error)
    실시간 오류 발생시 자바의 기본 에외처리 메커니즘에 의해 JVM이 해당 함수에서 프로그램을 종료한다.
    try-catch-finally 을 사용하여 오류 발생시 프로그램이 종료되지 않게 예외처리를 할 수 있다.
    예외에 대한 처리 방법은 프로그래머가 결정할 수 있다.

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

  • 에러를 미리 알려주는 컴파일 에러가 더 좋다.

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

  • jvm

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

  • try
    실시간 에러가 발생해도 프로그램을 종료시키지 않기 위한 예외 처리 문
  • catch
    try 안의 내용을 실행 중 에러가 발생했을 때 try로부터 인수를 전달받아 catch에서 처리
  • finally
    try 안의 내용이 정상적으로 실행되든, 에러가 발생하든 무조건 실행되어야 하는 내용을 finally에 작성

0개의 댓글