목록이것이 자바다 (108)
충분히 쌓여가는
제네릭 타입 결정되지 않은 타입을 파라미터로 가지는 클래스와 인터페이스 제네릭 타입은 선언부에 부호가 붙고, 그 사이에 타입 파라미터들이 위치한다 public class 클래스명 {...} public interface 인터페이스명 {...} 타입 파라미터는 변수명과 동일한 규칙에 따라 작성할 수 있지만 일반적으로 대문자 알파벳 한 글자로 표현한다 외부에서 제네릭 타입을 사용하려면 타입 파라미터에 구체적인 타입을 지정해야 한다 지정하지 않으면 Object 타입이 사용된다 kind와 model 필드를 타입 파라미터로 선언하고, Getter의 매개변수와 Setter의 리턴 타입 역시 타입 파라미터로 선언한다 이렇게 타입 파라미터를 사용하는 이유는 Product에 다양한 종류와 모델 제품을 저장하기 위해서이다..
제네릭 결정되지 않은 타입을 파라미터로 처리하고 실제 사용할 때 파라미터를 구체적인 타입으로 대체시키는 기능 Object 타입은 모든 클래스의 최상위 부모 클래스 따라서 모든 객체는 부모 타입인 Object로 자동 타입 변환이 된다 Box 클래스에 넣을 내용물로 content 필드를 선언 Box는 다양한 내용물을 저장해야 하므로 특정 클래스 타입으로 선언할 수 없다 그래서 Object 타입으로 선언함 public class Box { public Object content; } content는 Object 타입이므로 어떤 객체가 대입되어 있는지 확실하지 않다 대입된 내용물의 타입을 안다면 강제 타입 변환을 거쳐 얻을 수 있다 Box box = new Box(); String content = (Strin..
객체 해시코드 객체를 식별하는 정수 Object의 hashCode() 메소드 객체의 메모리 번지를 이용해서 해시코드를 생성하기 때문에 객체마다 다른 정수값을 return 한다 두 객체가 동등한지를 비교할 때 주로 사용 public int hashCode() hashCode() 메소드 역시 객체의 데이터를 기분으로 재정의해서 새로운 정수값을 return하도록 하는 것이 일반적이다 객체가 다르다 할지라도 내부 데이터가 동일하다면 같은 정수값을 return하기 위해서이다 자바는 두 객체가 동등함을 비교할 때 hashCode()와 equals() 메소드를 같이 사용하는 경우가 많다 1) hashCode()가 return하는 정수값이 같은지 확인 2) equals() 메소드가 true를 return 하는지를 확인..
Object의 equals() 메소드는 객체의 번지를 비교하고 boolean 값을 return 한다 public boolean equals(Obejct obj) equals() 메소드의 매개변수 타입이 Object이므로 자동 타입 변환에 의해 모든 객체가 매개값으로 대입될 수 있다 equals() 메소드는 비교 연산자인 ==과 동일한 결과를 return 한다 Object obj1 = new Object(); Object obj2 = obj1; boolean result = obj1.equals(obj2); boolean result = (obj1 == obj2) 일반적으로 Object의 equals() 메소드는 재정의해서 동등 비교용으로 사용된다(동등 비교: 객체가 비록 달라도 내부의 데이터가 같은지 비..