[TIL-DAY10] Java 문법 정리 [Generic, 클래스, 캡슐화]

김유란·2025년 1월 7일

1. Generic

  • 제네릭은 클래스 또는 메서드에 사용 가능하며 다수의 타입 변수 사용 가능

    public class Generic<T, U, E> {
    public E multiTypeMethod(T t, U u) { ... }
    }

  • 제네릭에서 <>사이에 들어가는 변수명 T는 타입 변수라고 부름

  • 객체의 static 멤버에 사용 불가

    static T get() { ... } // 에러
    static void set(T t) { ... } // 에러

    • 타입 변수는 인스턴스 변수로 간주되며 모든 객체에 동일하게 동작해야 하는 static 필드 특성상 사용 불가
  • 제네릭 배열 생성 불가

  • 상속과 타입의 관계는 그대로 적용됨


2. 클래스

클래스 생성

public class User {
		// 필드(=속성, attribute, ...)
		
		// 생성자(=constructor)
		
		// 메서드(=함수)
}

String <- 클래스

  • 아래 두 코드는 근본적으로 같음 (String과 User 모두 클래스)

    public static String getHello() {
    return "Hello";
    }

    public static User getUser() {
    return new User();
    }

  • String asd = new String(”d”); 와 같이 사용 가능


3. 캡슐화 💊

  • 내부 구현을 외부에 감추고 필요한 정보만 제공해서 데이터와 로직을 보호

활용방법

public class Person {

    private String name;
    private int age;

    public void methodA() {}
    private void methodB() {}
}

Getter: 객체의 데이터(속성 값) 을 읽을 수 있도록 제공하는 메서드
Setter: 객체의 데이터(속성 값) 을 수정할 수 있도록 제공하는 메서드

  • 클래스 내부에 Setter가 없고 필드가 앞으로 변경될 일이 없는 경우

    • 속성을 final로 선언 -> email은 상수로 선언됨

    public class User {
    private final String email;
    }

0개의 댓글