JAVA

JAVA

java.lang패키지 - Object클래스(toString())

java.lang 패키지 자바프로그래밍에 가장 기본이 되는 클래스들을 포함 import문 없이 사용 가능 ex) String클래스, System클래스 Object 클래스 모든 클래스의 최고 조상 → Object클래스의 멤버들은 모든 클래스에서 바로 사용 가능 toString() 의 특징 인스턴스에 대한 정보를 문자열(String)로 제공 오버라이딩 하지 않고 호출할 경우, 클래스이름@16진수해시코드값이 출력된다. public String toString() { return getClass().getName()+"@"+Integer.toHexString(hashCode()); } Card@6a5fc7f7 toString()을 오버라이딩 할 때는, 접근제어자를 public으로 설정하자 Object 클래스에 ..

JAVA

java.lang패키지 - Object클래스(hashCode())

java.lang패키지 자바프로그래밍에 가장 기본이 되는 클래스들을 포함 import문 없이 사용 가능 ex) String클래스, System클래스 Object 클래스 모든 클래스의 최고 조상 → Object클래스의 멤버들은 모든 클래스에서 바로 사용 가능 hashCode() 의 특징 해싱(hashing)기법에 사용되는 '해시함수(hash function)' 를 구현한 메소드 객체의 주소값으로 해시코드를 만들어 반환한다. 해싱(hashing) : 데이터 관리 기법 중 하나 다량의 데이터를 저장하고 검색하는 데 유용 해시함수(hash function) : 찾으려는 값을 입력하면, 값이 저장된 위치를 알려주는 해시코드를 반환 객체의 주소값으로 해시코드를 만들어 반환한다. 32bit JVM : 서로 다른 두 ..

JAVA

java.lang패키지 - Object클래스(equals())

java.lang 패키지 자바프로그래밍에 가장 기본이 되는 클래스들을 포함 import문 없이 사용 가능 ex) String클래스, System클래스 Object 클래스 모든 클래스의 최고 조상 → Object클래스의 멤버들은 모든 클래스에서 바로 사용 가능 equals(Object obj) 매개변수로 객체의 참조변수를 받아서 비교 결과는 boolean값으로 알려준다 참조변수의 값(주소값)으로 비교한다. →결과는 항상 false 객체를 생성할 때, 메모리의 비어있는 공간을 찾아 생성하므로 서로 다른 두 개의 객체가 같은 주소를 갖는 일은 없다. // 객체 자신과 객체 obj가 같은 객체인지 비교(같을경우 true 반환) public boolean equals(Object obj){ return (this..

JAVA

clone 메서드

clone() : 자신을 복제하여 새로운 인스턴스를 생성 원래의 값을 보존하거나, 작업에 실패해서 원래의 상태로 되돌리거나, 변경되기 전의 값을 참고 시 도움된다. Object클래스에 정의된 clone()은 단순히 인스턴스변수의 값만 복사한다. → 참조타입의 인스턴스 변수가 있는 클래스는 완전한 인스턴스 복제가 이루어지지 않는다. ex) 배열을 clone()하는 경우 복제된 인스턴스도 같은 배열의 주소를 갖게되므로 clone()한 작업이 원본에 영향을 미치게 된다. 해결방법 : clone()을 오버라이딩해서 새로운 배열을 생성 후, 배열의 내용들을 복사해야 한다 clone() 사용순서 Cloneable 인터페이스를 구현한다. 접근 제어자를 protected에서 public으로 변경한다. → 접근제어자가 ..

JAVA

애너테이션(annotation)

애너테이션 프로그램의 소스코드 안에 다른 프로그램을 위한 정보를 미리 약속된 형식으로 포함시킨 것 주석처럼 프로그래밍 언어에 영향을 미치지 않으며, 유용한 정보를 제공 소스코드 + 문서 @Test // 이 메서드가 테스트 대상임을 테스트 프로그램에게 알린다. public void method() { ... } 표준 애너테이션 (자바에서 기본으로 제공하는 애너테이션) @Override 조상의 메서드를 오버라이딩하는 것이라는 걸 컴파일러에게 알려주는 역할 메서드 선언부 앞에 위치 메서드의 이름을 잘못 적는 경우의 실수를 방지해준다. class Parent { void parentMethod() { } } class Child extends Parent { // 조상의 메서드 오버라이딩을 올바르게 했는지 컴파..

JAVA

열거형(enum)

열거형 여러 상수를 선언해야 할 때, 관련된 상수들을 같이 묶어 놓은 것 java는 타입에 안전한 열거형을 제공한다(값&타입 체크) 값이 같더라도 타입이 다르면 컴파일 에러가 발생한다. 값을 지정하지 않아도 자동으로 0부터 시작하는 정수값 할당 //열거형 class Card { // 0, 1, 2, 3 enum Kind { CLOVER, HEART, DIAMOND, SPADE } //열거형 Kind를 정의 enum Value { TWO, THREE, FOUR } // 열거형 Value를 정의 final Kind kind; // 타입이 int가 아닌 Kind임에 유의! final Value value; } --------------------------------------------------------..

JAVA

컬렉션 프레임웍(collections framework)

Tip! 객체지향 프로그래밍 다음으로 중요! 여러번 반복 ( 빠르게, 전체적으로) 실습 중요! (어떻게/언제 사용되는지) HashMap과 Hashtable - 순서 x, 중복(key x, value o) HashMap - 순서x , 중복(key 불가, value 가능) Map 인터페이스를 구현한 대표적인 컬렉션 클래스 키(key) 와 값(value)을 묶어서 하나의 데이터(entry)로 저장한다 키(key) : 중복x (ex. ID) 값(value) : 중복o (ex. Password) 해싱(hashing)을 사용한다 : 많은 양의 데이터를 검색하는데 유용 순서를 유지하려면 LinkedHashMap 클래스를 사용하면 된다. Entry라는 내부 클래스를 정의하고, Entry 타입의 배열을 선언하고 있다. ..

JAVA

객체지향프로그래밍(2) - 상속, Object 클래스

상속 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 자손클래스 extends 조상클래스 ex) class Child extends Parent { } 조상클래스 : 상속해주는 클래스 자손클래스 : 상속 받는 클래스 조상 클래스가 변경되면 자손 클래스는 자동으로 영향을 받게 된다 자손 클래스가 변경되는 것은 조상 클래스에 아무런 영향을 주지 못한다. 자손 클래스는 조상 클래스의 모든 멤버를 상속받는다. (단, 생성자와 초기화 블럭은 상속되지 않는다.) 자손 클래스의 멤버 개수는 조상 클래스보다 항상 같거나 많다. 자손클래스의 인스턴스를 생성하면 조상 클래스의 멤버도 함께 생성되기 때문에 따로 조상 클래스의 인스턴스를 생성하지 않고도 조상 클래스의 멤버들을 사용할 수 있다. 클래스 간의 관계 - 포..

작은달팽이
'JAVA' 카테고리의 글 목록