[TIL-DAY8] Java 문법 종합반 강의 3, 4주차 수강 [this, 제어자, 예외(Exception)]

김유란·2025년 1월 3일

1. this와 this()

this

 this는 객체 즉, 인스턴스 자신을 표현하는 키워드

  • 객체 내부 생성자 및 메서드에서 객체 내부 멤버에 접근하기 위해 사용
  • 객체 내부 멤버에 접근할 때 this 키워드가 필수는 아니지만 상황에 따라 필수가 될 수 있음

    public Car(String model, String color, double price) {
    this.model = model;
    this.color = color;
    this.price = price;
    }

this()

 this(…)는 객체 즉, 인스턴스 자신의 생성자를 호출하는 키워드

  • 객체 내부 생성자 및 메서드에서 해당 객체의 생성자를 호출하기 위해 사용될 수 있음
  • 생성자를 통해 객체의 필드를 초기화할 때 중복되는 코드를 줄여줄 수 있음

    public Car(String model) {
    this(model, "Blue", 50000000);
    }
    public Car(String model, String color) {
    this(model, color, 100000000);
    }
    public Car(String model, String color, double price) {
    this.model = model;
    this.color = color;
    this.price = price;
    }

  • ⚠️ 주의할 점
    • this() 키워드를 사용해서 다른 생성자를 호출할 때는 반드시 해당 생성자의 첫 줄에 작성

      // 오류 발생
      public Car(String model) {
      System.out.println("model = " + model);
      this(model, "Blue", 50000000);
      }


2. Getter와 Setter

Getter 메서드

 외부에서 객체의 private 한 필드를 읽을 필요가 있을 때 Getter 메서드를 사용

  • private 접근 제어자로 지정한 필드가 있을 때 Getter 메서드를 통해 값을 가져올 수 있음
  • 메서드 이름의 규칙은 : get + 필드 이름(첫 글자 대문자)

Setter 메서드

 외부에서 객체의 private 한 필드를 저장/수정할 필요가 있을 때 Setter 메서드를 사용

  • private 접근 제어자로 지정한 필드가 있을 때 Setter 메서드를 통해 값을 저장하거나 수정할 수 있음
  • 메서드 이름의 규칙은 : set + 필드 이름(첫 글자 대문자)

3. 제어자의 조합

사용 가능한 제어자

  • 클래스: public, default, final, abstract
  • 메서드: public, protected, default, private, final, abstract, static
  • 멤버 변수: public, protected, default, private, final, static
  • 지역변수: final

⚠️ 주의할 점

  • 메서드에 staticabstract를 함께 사용할 수 없다.
  • 클래스에 abstractfinal을 동시에 사용할 수 없다.
  • abstract메서드의 접근 제어자가 private일 수 없다.
  • 메서드에 privatefinal을 같이 사용할 필요는 없다.

4. 오류(Error)🔥 vs 예외(Exception)🚨

  • 오류(Error)는 일반적으로 회복이 불가능한 문제

  • 예외(Exception)는 일반적으로 회복이 가능한 문제

    • 코드 실행 관점에서 예외의 종류
      • 컴파일 에러(예외)
      • 런타임 에러(예외)
    • 예외 처리 관점에서 예외의 종류
      • 확인된 예외✅ (Checked Exception): 컴파일 시점에 확인하는 예외로, 반드시 예외 처리 필요
      • 미확인된 예외🚫 (Unchecked Exception): 런타임 시점에 확인되는 예외로, 반드시 예외 처리가 필요하지 않음

0개의 댓글