2023. 02. 27 (2 week)

김준태·2023년 2월 27일
0

멋쟁이사자처럼

목록 보기
6/16
post-thumbnail

래퍼(wrapper)클래스

  • 매개변수로 객체를 요구할 때, 기본형(byte, short, int, long, float, double, boolean, char) 값이 아닌 객체로 저장해야할 때, 객체간의 비교가 필요할 때 ... 기본형 값들을 객체로 변환하여 작업할때 사용된다.
  • 래퍼 클래스들은 모두 equals()가 오버라이딩되어 있어서 주소값이 아닌 객체가 가지고 있는 값을 비교한다.
  • 오토박싱이 된다고 해도 Integer객체에 비교연산자를 사용할 수 없어 compareTo()를 사용한다.

지네릭스(Generics)

  • 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입체크를 해주는 기능
  • 타입 안정성을 제공하고 타입체크와 형변환을 생략할 수 있으므로 코드가 간결해 진다.
  • 모든 객체에 대해 동일하게 동작해야하는 static멤버에 타입 변수 T를 사용할 수 없다. T는 인스턴스변수로 간주되기 때문이다. static멤버는 인스턴스변수를 참조할 수 없다. static멤버는 타입 변수에 지정된 타입, 즉 대입된 타입의 종류에 관계없이 동일한 것이어야 하기 때문이다.
class 저장소<T> {
	T item;
    
    void setItem (T item) { 
    	this.item = item;
    }
    T getItem() {
    	return item;
    }
}

// 객체 생성
저장소<String> a = new 저장소<String>();

지네릭 클래스 제한하기

class 과일상자<T extends 과일> {
	// 과일의 자손만 타입으로 지정가능
}

와일드 카드

  • 다른 모든 제네릭 타입의 인스턴스를 수용할 수 있는 타입 매개변수
  • 메서드의 매개변수로 와일드카드를 사용하면, 해당 메서드는 다양한 타입의 인스턴스를 처리할 수 있으며, 코드의 재사용성과 유연성이 높아진다.
<? extends T> : 와일드 카드의 상한 제한. T와 그 자손들만 가능
<? super T>   : 와일드 카드의 하한 제한. T와 그 조상들만 가능
<?>           : 제한 없음. 모든 타입이 가능. <? extends Object> 동일

Scanner클래스

// 데이터의 형식에 맞지 않은 메소드를 사용하면 에러가 발생한다.
boolean : nextBoolean()
byte    : nextByte()
short   : nextShort()
int     : nextInt()
long    : nextLong()
double  : nextDouble()
float   : nextFloat()
String  : nextLine()

Scanner sc = new Scanner(System.in);
sc.close(); 마지막에 스캐너를 닫아준다.

0개의 댓글