
Object클래스의 메서드 equals(Object obj) 두 객체의 같고 다름을 참조변수의 값으로 비교하는 메서드 서로 다른 두 객체를 비교하면 return false String클래스에서는 equals메서드를 오버라이딩 → 문자열 값 비교 결과 반환 hashCode() 객체의 주소값을 이용해서 해시코드를 만들어 반환 다른 객체는 같은 해시코드를 가질 수 없음 String클래스에서는 hashCode메서드를 오버라이딩 → 문자열이 같으면 동일 해쉬코드 반환 clone() 객체에 저장된 값을 복제 → 기본형이 아닌 경우 주소값을 복제하므로 원본가 복제본이 동일 → 얕은복사(shallow copy) c.f. 원본이 참조하는 객체까지 복제 → 깊은복사(deep copy) String클래스 immutable ..

상속관계 vs 포함관계 상속관계 : is-a (A truck is a car.) class Truck extends Car { // ... } 포함관계 : has-a (A truck has a wheel.) → 멤버로 갖는다. class Car { int wheel = 4; // ... } 오버라이딩 vs 오버로딩 오버라이딩 (overriding) 조상으로부터 상속받은 메서드의 내용을 변경하는 것이다. 조상보다 좁은 범위의 접근제어나 예외선언 불가능하다. 오버로딩 (overloading) 매개변수의 수나 타입을 다르게하여, 기존에 없는 새로운 메서드를 정의하는 것이다. 상속 (inheritance) 자바는 단일상속만 가능하다. 복잡한 기능의 클래스 작성은 쉽지 않다. 클래스 간 관계가 명확하고, 코드의 ..

메모리 구조 변수 매개변수 기본형이면, 값이 복사된다. (read only) 참조형이면, 인스턴스 주소가 복사된다. (read & write) 스태틱(클래식) 변수와 인스턴스 변수 public class Card { // 스태틱(클래스) 변수 : 모든 인스턴스에 공통으로 들어가는 성질 static int height = 88; static int width = 62; // 인스턴스 변수 : 인스턴스별로 다른 성질 // 클래스 메서드가 사용할 수 없다. int number; String shape; Card(){ this.number = 1; this.shape = "Spade"; } Card(int number, String shape){ this.number = number; this.shape = s..