JAVA 32일차

이희복·2023년 2월 13일
0

JAVA

목록 보기
13/41

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

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

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

final은 class에서 상속할 수 없는 class를 의미합니다
final키워드가 붙은 class는 extends 키워드로 다른 class를 상속할 수 없습니다.
final은 메소드에서 오버라이딩 할 수 없음을 의미합니다.

interface 와 class 의 차이는?

추상 클래스

  • 선언과 구현이 모두 존재 하지만 인터페이스는 선언만 존재 합니다.
  • 멤버 변수와 멤버 메서드를 선언할 수 있지만 접근 제한자는 설정할 수 없습니다.

interface

  • TypeScript의 컨텍스트 내에서만 존재하는 가상 구조입니다.

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

@Override 주석은 Java 컴파일러에게 수퍼 클래스의 메소드를 대체하려고 함을 알려줍니다.

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

추상의 의미. abstract 키워드는 생략 가능(컴파일러 자동 생성)

인터페이스 내에 있는 함수의 body부분이 없고 선언 부분만 있기 때문에 구현은 자손 클래스에서 해야한다.(자손이 구현!)

그렇기 때문에 인터페이스는 객체를 만들 수 없다.

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

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

try 블록의 코드가 예외없이 정상 실행되면 catch블록의 코드는 실행되지 않고 finally 블록의 코드를 실행합니다. 하지만 try 블록의 코드에서 예외가 발생하면 즉시 실행을 멈추고 catch 블록으로 이동하여 예외처리 코드를 실행합니다. 그리고 finally 블록의 코드를 실행합니다. (finally 블록은 생략 가능합니다.)

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

실시간 에러(런타임 에러)(Runtime Error)

  • 프로그래머의 설계 미숙으로 프로그램 실행 중 발생하는 에러입니다.
  • 에러 발생 시 프로그래머가 역추적해 원인을 확인해야 합니다.

컴파일 에러(Compile Error)

  • 문법을 잘못 작성해 프로그램을 컴파일할 수 없는 에러입니다.
  • 에러 메시지를 통해 에러가 발생한 부분을 확인해 비교적 쉽게 해결할 수 있습니다.

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

컴파일 에러가 좋습니다.
에러 메시지를 통해 에러가 발생한 부분을 확인해 비교적 쉽게 해결할 수 있기 때문입니다.

실시간 에러 내는 주체는?

개발자가 실시간 에러를 냅니다.

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

  • try catch finally가 예외 처리의 기본적인 문장 구성이다.
  • 실행의 흐름이 try 구문 안에 들어왔을 때 반드시 실행 해야 하는 문장을 finally 구문에 둘 수 있다.
  • finally는 앞의 try-catch에서 성공을 하든 실패를 하든 꼭 통과해야한다!
  • write나 scanner 등은 반드시 close 해줘야하는 거라서 써주는것

하지만 반드시 처리 해야 하는 문장에서도 에러 뜰 수 있어서 finally 문장 안에서 try catch 해줄 수 있다.

  • finally 구문 사용 예시 : 있으면 무조건 타게 되어있다.

0개의 댓글