제네릭은 클래스 또는 메서드에 사용 가능하며 다수의 타입 변수 사용 가능
public class Generic<T, U, E> {
public E multiTypeMethod(T t, U u) { ... }
}
제네릭에서 <>사이에 들어가는 변수명 T는 타입 변수라고 부름
객체의 static 멤버에 사용 불가
static T get() { ... } // 에러
static void set(T t) { ... } // 에러
제네릭 배열 생성 불가
상속과 타입의 관계는 그대로 적용됨
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”); 와 같이 사용 가능
public class Person {
private String name;
private int age;
public void methodA() {}
private void methodB() {}
}
Getter: 객체의 데이터(속성 값) 을 읽을 수 있도록 제공하는 메서드
Setter: 객체의 데이터(속성 값) 을 수정할 수 있도록 제공하는 메서드
클래스 내부에 Setter가 없고 필드가 앞으로 변경될 일이 없는 경우
public class User {
private final String email;
}