전체 글 113

컬렉션(Collection)의 종류 및 장단점

컬렉션(Collection) - 자바는 컬렉션 인터페이스와 컬렉션 클래스로 나누어서 제공합니다. - import java.util.() 에 포함합니다. - 컬렉션 라이브러리들은 모두 제너릭 기능을 지원합니다. 컬렉션의 종류 인터페이스 설명 Collection 모든 자료 구조의 부모 인터페이스로 객체의 모임을 나타냅니다. Set 집합(중복된 원소를 가지지 않는)을 나타내는 자료 구조입니다. 특징 : 중복 X List 순서가 있는 자료 구조로 중복된 원소를 가질 수 있습니다. 특징 : 순서 유지 Map 키와 값으로 구성되어있습니다. 특징 : FIFO Queue 들어오는 순서대로 나가는 구조입니다.(FIFO) Set HashSet 키-값만 중복되지 않게 넣습니다. LinkedHashSet 넣는 순서대로 저장됩..

제네릭 클래스

제네릭 클래스 - '일반적인' 이라는 의미로 하나의 코드로 여러 타입을 동시에 처리하는 기술입니다. - 다양한 종류의 데이터를 처리할 수 있는 클래스와 메소드를 작성하는 기법입니다. - JDK 1.5부터 사용가능합니다. - 클래스를 정의할 때 클래스 안에서 사용하는 자료형을 구체적으로 명시하지 않고 T와 같은 기호로 표시합니다. - 이후 객체를 생성할 때 T자리에 구체적인 자료형을 적어줍니다. 타입 변수 표기법 - 제네릭 클래스는 여러개의 타입 매개 변수를 가질 수 있으나 타입의 이름은 클래스나 인터페이스 내에서 유일해야합니다. - 한개의 대문자로 표시하는게 관례(변수의 이름과 구분하기 위해서)입니다. - 타입 매개 변수는 기초 자료형으로 객체화될 수 없습니다. Example - E - Element(요..

Calendar 클래스

Calendar 클래스 Calendar 클래스는 Date 클래스와 마찬가지로 날짜와 시간을 다루는 클래스이다. Calendar 클래스가 새로 추가되면서 Date 대부분의 메소드는 deprecated 되어 잘 사용하지 않으나, 경우에 따라 Date 의 메소드를 그대로 사용하거나, 혹은 Calendar 클래스와 상호 변환하는 상황이 있습니다. Calendar 클래스는 추상 클래스이기 때문에 직접 new 하여 객체 생성이 불가하고, Calendar.getInstance() 메소드를 이용하거나 Calendar 클래스를 상속받는 GregorianCalendar 클래스를 이용하여 객체를 생성해야합니다. 생성자 Calendar day = Calendar.getInstance(); 메소드 메소드 기능 YEAR 년도를 ..

Date 클래스

Date 클래스 import java.util.Date; 생성자 Date day = new Date(); 메소드 메소드 기능 getDate() 달(1-31)의 날짜를 반환합니다. getDay() 주(0-6)의 날짜를 반환합니다. getFullYear() 년도(yyyy)를 반환합니다. getHours() 시간(HH)을 반환합니다. getMilliseconds() 1000분의 1초(SSS)를 반환합니다. getMinutes() 분(mm)을 반환합니다. getMonth() 달(MM)을 반환합니다. getSeconds() 초(ss)를 반환합니다. getTime() "yyyy-MM-dd E요일 HH:mm:ss:SSS"형식으로 반환합니다. getTimezoneOffset() GMT와 local 시간 사이의 차이를..

인터페이스(interface)

IT에서의 인터페이스 - 인터페이스는 컴퓨터와 다른 주변기기를 연결하는 표준의 의미입니다. 하지만, JAVA에서의 인터페이스(interface) - 해야 할 작업의 구체적 구현 없이 기능만 선언하는 클래스입니다. - 하위 클래스가 수행해야 하는 메소드와 필요한 상수만을 미리 추상적으로 정의해 놓은 특별한 클래스입니다. - 인터페이스는 다중 상속(multiple inheritance)을 지원(자바의 일반 클래스는 다중 상속을 지원하지 않음)합니다. extends - 사실 extends가 상속의 대표적인 형태입니다. - 부모의 메소드를 그대로 사용할 수 있으며 오버라이딩 할 필요 없이 부모에 구현되있는 것을 직접 사용 가능합니다. class Vehicle { protected int speed = 3; pu..

추상 클래스(Abstract Class)

추상 클래스(Abstract Class) - 클래스 계층구조에서 상위에 위치, 하위 클래스를 대표하는 클래스 - 추상의 의미대로 "구체적"이지 않은 클래스 - 보다 구체적인 하위 클래스를 대표하는 클래스 다른 일반 클래스와 구별되는 특징 - 추상클래스는 직접 객체화(instantiation) 될 수 없다. -> 즉, 생성자를 사용하여 객체를 생성할 수 없다. - 추상 클래스는 다른 클래스에 의하여 상속되어야 한다. -> 즉, 하위 클래스가 없는 추상클래스는 의미가 없다. - 추상 클래스는 하위 클래스가 있어야 하므로 구현 시 클래스 앞에 키워드 fianl이 올 수 없다. 추상 메소드 - 메소드 몸체가 없는 메소드 - 추상 메소드 정의시 반환형 앞에 키워드 abstract를 기술하고, 메소드 몸체 구현 없..

오버라이딩(Overriding) / 오버로딩(Overloading)

메소드 오버라이딩(Overriding) - 상위 클래스의 동일한 메소드를 하위 클래스에서 다시 정의(코드를 다시 구현) - 메소드 재정의(method redefinition) - or 메소드 대체(method replacement) 메소드 오버라이딩의 목적 - 상위 클래스에서 이미 정의한 메소드를 다시 수정하지 않고 하위 클래스에서 좀더 보완 수정하거나 완전히 새로운 것으로 대체하기 위한 방법입니다. 메소드 오버라이딩 조건 - 메소드의 반환 값과 메소드 이름, 매개변수는 반드시 같아야 합니다. - 접근 지정자는 하위 클래스의 메소드가 보다 공개적이어야합니다. - 상위 클래스의 메소드가 public이면, 오버라이딩되는 메소드는 public만 가능합니다. - 상위 클래스의 메소드가 protected이면, 하..

다향성(Polymorphism)

다향성(Polymorphism) 프로그램 언어의 다형성은 그 프로그래밍 언어의 자료형 체계의 성질을 나타내는 것으로, 프로그램 언어의 각 요소들(상수, 변수, 식, 오브젝트, 함수, 메소드 등)이 다양한 자료형(type)에 속하는 것이 허가되는 성질을 가리킨다. 반댓말은 단형성으로, 프로그램 언어의 각 요소가 한가지 형태만 가지는 성질을 가리킨다. 업 캐스팅 - 하위 객체는 상위 클래스형 변수에 대입이 가능, 상위로의 자료형 변환을 합니다. - 업 캐스팅은 하위 클래스는 상위 클래스라는 개념이 성립합니다. 업 캐스팅의 제약 - 업 캐스팅된 변수로는 하위 객체의 멤버를 참조할 수 없는 제약이 있습니다. - 상위클래스의 변수는 하위 클래스를 접근 지정자만 허용한다면 접근이 가능합니다. 다운 캐스팅 - 상위 ..