전체 글
-
표준 애너테이션공부/Java 2024. 5. 2. 10:13
표준 애너테이션 애너테이션설명@Override컴파일러에게 메서드를 오버라이딩하는 것이라고 알린다.@Deprecated앞으로 사용하지 않을 것을 권장하는 대상에 붙인다.@SuppressWarnings컴파일러의 특정 경고메시지가 나타나지 않게 해준다.@SafeVarages지네릭스 타입의 가변인자에 사용한다. (JDK1.7)@FunctionalInterface함수형 인터페이스라는 것을 알린다. (JDK1.8)@Nativenative 메서드에서 참조되는 상수 앞에 붙인다. (JDK1.8) @Override- 오버라이딩을 올바르게 했는지 컴파일러가 체크하게 한다.- 오버라이딩할 때 메서드 이름을 잘못적는 실수를 하는 경우가 많아 사용한다.- 오버라이딩 할 때는 메서드 선언부 앞에 @Override를 붙이면 실수..
-
애너테이션 (Annotation)카테고리 없음 2024. 5. 2. 09:43
애너테이션(Annotation) - 주석처럼 프로그래밍 언어에 영향을 미치지 않으며, 유용한 정보를 제공한다. 예제@Testpublic void method() { ...}위 예제는 Test 애너테이션을 사용했다.Test 애너테이션은 JUnit 프로그램을 통해 단위 테스트를 할 수 있게 해준다.작성한 메서드 중 테스트가 필요한 코드에 @Test만 붙여주면 단위 테스트를 진행하게 된다.다른 코드엔 영향을 미치지 않지만, 필요한 부분에서 내가 원하는 정보를 컴퓨터에 줄 수 있다.애너테이션은 표준 애너테이션과 메타 애너테이션으로 나뉜다.이는 따로 포스팅하려 한다. ※ 마커 애너테이션 (Marker Annotation)- 요소가 하나도 정의되지 않은 애너테이션
-
열거형에 멤버 추가하기공부/Java 2024. 4. 30. 15:58
열거형에 멤버 추가하기 - 불연속적인 열거형 상수의 경우, 원하는 값을 괄호() 안에 적는다.- 괄호() 안에 두 개 이상의 값을 넣을 수도 있다.- 괄호()를 사용하려면, 인스턴스 변수와 생성자를 새로 추가해줘야 한다. 예제enum Direction { EAST(1), SOUTH(5), WEST(-1), NORTH(10); private final int value; // 정수를 저장할 필드(인스턴스 변수) 추가 Direction(int value) {this.value = value;} // 생성자 추가 public int getValue() {return value;}}괄호()에 값을 저장할 iv를 선언해줘야 하며, private final을 사용한다.생성..
-
열거형(enum)공부/Java 2024. 4. 29. 23:16
열거형(enum) - 관련된 상수들을 같이 묶어 놓은 것 예제class Card{ enum Kind {CLOVER, HEART, DIAMOND, SPADE} enum Value {TWO, THREE, FOUR} final Kind kind; final Value value;}위 예제는 열거형 상수로 Kind와 Value를 선언한 것이다.열거형 상수는 값이 순차적으로 들어가며, Kind의 값은 CLOVER 0, HEART 1 등 순차적으로 값이 들어가진다.열거형 상수 Value 역시 순차적으로 들어가지므로 TWO는 0, THREE는 1이다. - Java는 타입에 완전한 열거형을 제공한다. 예제if(Card.Kind.CLOVER == Card.Value.TWO) { } 자바는 값..
-
지네릭 형변환공부/Java 2024. 4. 28. 23:49
지네릭 형변환 - 지네릭 타입과 원시 타입 간의 형변환은 가능하지만 바람직하지 않다. (경고 발생) 예제Box objBox = null;Box box = (Box)objBox;objBox = (Box)box;Box strBox = null;//objBox = (Box)strBox; // 에러. 대입된 타입이 다른 지네릭 타입 간에는 불가지네릭 타입과 넌지네릭 타입은 타입캐스팅을 통해 형변환이 가능하지만, 생략이 불가능하고 반드시 작성해야 한다.또한 대입된 타입이 다른 지네릭 타입 간에는 형변환이 불가능하다. - 와일드 카드가 사용된 지네릭 타입으로는 형변환이 가능하다. 예제Box wBox = (Box) new Box();Box wBox = new Box(); // 위 문장과 동일두 문장은 같은..
-
지네릭 메서드공부/Java 2024. 4. 25. 11:52
지네릭 메서드 - 지네릭 타입이 선언된 메서드(타입 변수는 메서드 내에서만 유효)- 클래스의 타입 매개변서와 메서드의 타입 매개변수는 별개 예제class FruitBox{ ... static void sort(List list, Comparator c){ ... }}FruitBox 라는 지네릭 클래스 속에 다음과 같은 지네릭 메서드가 있는 상황이다.타입 문자가 로 일치하지만 둘은 다른 타입 변수다.지네릭 메서드는 그 메서드 내에서만 사용할 수 있으며 우선된다.iv와 lv의 관계를 생각하면 이해가 쉽다. (가까운 곳이 우선순위) - 메서드를 호출할 때마다 타입을 대입한다. (대부분 생략 가능) 와일드 카드와의 가장 큰 차이점이다. 와일드 카드는 하나의 참조변수로 서로 다른 타입이 대..
-
제한된 지네릭 클래스, 지네릭스의 제약공부/Java 2024. 4. 24. 19:54
제한된 지네릭 클래스, 지네릭스의 제약 지네릭 클래스 제한하기- extends로 대입할 수 있는 타입을 제한 예제class FruitBox { ArrayList list = new ArrayList(); ...}Fruit의 자손만 타입으로 지정 가능하도록 상속관계를 걸어준다.이렇게 하면 내가 원하는 종류만 타입 변수로 대입할 수 있게 된다. - 인터페이스인 경우에도 extends를 사용한다. Fruit 클래스와 Eatable 인터페이스를 함께 상속받는다고 가정해보자. 예제class FruitBox extends Box{}※ 인터페이스를 상속받을 땐 ','(콤마)가 아닌 '&'(앤드)를 사용한다. 지네릭스의 제약- 타입 변수에 대입은 인스턴스 별로 다르게 ..