본문 바로가기

Java/객체 지향 개념 ~11

자바의 정석 (Chapter 12. 제네릭, 열거형, 애노테이션) 해당 게시물은 자바의 정석을 정리한 내용 입니다. 1. 제네릭(Generic) 1.1 제네릭? 제네릭의 정의 - 제네릭(Generic)은 컴파일 시 타입을 체크 해 주는 기능이다. - 또는 타입을 파라미터화 해서 컴파일 시 구체적인 타입이 결정 되도록 하는 것이다. 제네릭의 장점 - 객체의 타입 안정성을 높인다. ※ "타입 안정성을 높인다"는 것은 의도하지 않은 타입의 객체가 저장되는 것을 막고, 저장된 객체를 꺼내올 때 원래의 타입과 다른 타입으로 잘못 형변환 되어 발생할 수 있는 오류를 줄여준다는 뜻이다. - 형 변환의 번거로움을 줄여준다. 1.2 제네릭 클래스의 선언 - 제네릭 클래스를 작성할 때, Object 타입 대신 타입 매개변수(E)를 선언해서 사용한다. ① 예를 들어, ArrayList 클.. 2020. 8. 28.
자바의 정석 (Chapter 11. 컬렉션 프레임워크) 해당 게시물은 자바의 정석을 정리한 내용 입니다. 1. 컬렉션 프레임워크(collections framework) 컬렉션(collection) - 여러 객체(데이터)를 모아 놓은 것을 의미 프레임워크(framework) - 표준화, 정형화된 프로그래밍 방식 컬렉션 프레임워크(collections framework) - 컬렉션(여러 객체)을 다루기 위한 표준화된 프로그래밍 방식 - 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스를 제공 - java.util 패키지에 포함. JDK 1.2 부터 제공 컬렉션 클래스(collection class) - 여러 객체를 저장할 수 있는 클래스 예) Vector, ArrayList, HashSet ... - 컬렉션 클래스들은 저장 공간이 부족하면 스스로 공간을 늘린.. 2020. 8. 23.
자바의 정석 (Chapter 10. 날짜와 시간 & 형식화) 해당 게시물은 자바의 정석을 정리한 내용 입니다. 1. 날짜와 시간 1.1 Calendar와 Date java.util.Date - 날짜와 시간을 다룰 목적으로 만들어진 클래스(JDK1.0) - Date의 메서드는 거의 deprecated되었지만, 여전히 쓰이고 있다. java.util.Date - Date클래스를 개선한 새로운 클래스(JDK1.1). 여전히 단점이 존재 java.time 패키지 - Date와 Calendar의 단점을 개선한 새로운 클래스들을 제공(JDK1.8) 1.2 Calendar 클래스 Calendar와 GregorianCalendar - Calendar는 추상 클래스이므로 getInstance()를 통해 구현된 클래스의 인스턴스를 얻어야 한다. (직접 객체를 생성할 수 없음) - .. 2020. 8. 19.
자바의 정석 (Chapter 9. java.lang 패키지와 유용한 클래스) 해당 게시물은 자바의 정석을 정리한 내용 입니다. 1. java.lang 패키지 1.1 Object 클래스 Object 클래스는 모든 클래스의 최고 조상이기 때문에 Object 클래스의 멤버들은 모든 클래스에서 바로 사용 가능하다. Object 클래스의 메서드 설 명 protected Object clone() 객체 자신의 복사본을 반환한다. public boolean equals(Object obj) 객체 자신과 주어진 객체(obj)를 비교한다. 같으면 true, 다르면 false protected void finalize() 객체가 소멸될 때 가비지 컬렉터에 의해 자동적으로 호출된다. 이때, 수행 되어야 하는 코드가 있을 때 오버라이딩 한다. (거의 사용안함) public Class getClass(.. 2020. 8. 14.
자바의 정석 (Chapter 8. 예외 처리) 해당 게시물은 자바의 정석을 정리한 내용 입니다. 1.1 프로그램 오류 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우가 있다. 이러한 결과를 초래하는 원인을 프로그램 에러 또는 오류라고 한다. 프로그램 오류는 컴파일 에러(compile-time error), 런타임 에러(runtime error), 논리적 에러(logical error)로 나눌 수 있다. 컴파일 에러 : 컴파일 시에 발생하는 에러 런타임 에러 : 실행 시에 발생하는 에러 논리적 에러 : 실행은 되지만, 의도와 다르게 동작하는 것 Java의 런타임 에러는 에러(error)와 예외(exception), 두 가지로 구분 된다. 에러(error) : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 예외(e.. 2020. 8. 8.
자바의 정석 (Chapter 7_3. 객체지향개념 2) 해당 게시물은 자바의 정석을 정리한 내용 입니다. 6.1. 추상 클래스(abstract class) 추상 클래스 - 추상 클래스는 추상 메서드(미완성 메서드)를 포함하고 있는 클래스이다. abstract class 클래스이름{ ... } abstract class Player { // 추상 클래스(미완성 클래스) abstract void play(int pos); // 추상 메서드(몸통이 없는 미완성 메서드) abstract void stop(); // 추상 메서드 } - 다른 클래스를 작성하는데 도움을 주기 위한 것이며 인스턴스 생성 불가 Player p = new Player(); // 에러. 추상 클래스의 인스턴스 생성 불가 - 추상 클래스는 상속을 통해 추상 메서드를 완성해야 인스턴스 생성이 가능.. 2020. 8. 3.