본문 바로가기

java22

Enum 열거형 🟢 enum 열거형 관련된 상수들을 같이 묶어 놓는 것. java는 타입에 안전한 열거형을 제공 class Card{ static final int CLOVER = 0; static final int HEART = 1; static final int DIAMOND = 2; static final int TWO = 0; static final int THREE = 1; static final int FOUR = 2; final int kind; final int num; } //아래 코드는 true이다. Card.CLOVER == Card.TWO; //true. 하지만 이둘은 의미상 엄연히 다르다. 아래처럼 enum을 사용할 수 있다 //아래처럼 바꿀 수 있다. class Card{ enum Kind { .. 2022. 4. 15.
Generics 05 제네릭 형 변환 제네릭 타입의 형 변환 -제네릭 타입과 원시 타입 간의 형변환은 바람직하지 않다.(경고 발생) Box objBox = null; Box box = (Box)objBox; // OK. BUT 제네릭 타입 -> 원시 타입. 경고 발생!!! objBox = (Box)objBox; // OK. BUT 원시 타입 -> 제네릭 타입. 경고 발생!!! Box strBox = null; objBox = (Box)strBox; // ERROR. Box -> Box strBox = (Box)objBox; // ERROR. Box -> Box -와일드 카드가 선언된 제네릭 타입으로는 형변환 가능 Box objBox = (Box)new Box(); // ERROR. 형변환 불가능 Box 2022. 1. 4.
Generics 05 와일드 카드, 제네릭 메서드 와일드 카드 -하나의 참조 변수로 대입된 타입이 다른 객체를 참조 가능하게 한다. (제네릭에 다형성이 가능해진다.) ArrayList 제한 없음. 모든 타입이 가능 2022. 1. 4.
Generics 04 제한된 제네릭 클래스(제네릭스의 제약) 제한된 제네릭 -extends로 대입할 수 있는 타입을 제한 class FruitBox{ // Fruit의 자손만 타입으로 지정가능 ArrayList list = new ArrayList(); ... } FruitBox appleBox = new FruitBox(); //OK FruitBox toyBox = new FruitBox(); //ERROR! 인터페이스인 경우에도 extends 사용 interface Eatable{...} class FruitBox {...} // FruitBox는 Eatable 인터페이스를 구현한 타입으로만 생성 가능하다 EX) 아래와 같은 클래스들이 존재한다. public interface Eatable {} public class Fruit implements Eatabl.. 2022. 1. 3.