Programming Language/Java 28

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)에 속하는 것이 허가되는 성질을 가리킨다. 반댓말은 단형성으로, 프로그램 언어의 각 요소가 한가지 형태만 가지는 성질을 가리킨다. 업 캐스팅 - 하위 객체는 상위 클래스형 변수에 대입이 가능, 상위로의 자료형 변환을 합니다. - 업 캐스팅은 하위 클래스는 상위 클래스라는 개념이 성립합니다. 업 캐스팅의 제약 - 업 캐스팅된 변수로는 하위 객체의 멤버를 참조할 수 없는 제약이 있습니다. - 상위클래스의 변수는 하위 클래스를 접근 지정자만 허용한다면 접근이 가능합니다. 다운 캐스팅 - 상위 ..

클래스(Class) & 객체(Object)

클래스(Class) 객체를 정의하는 설계도 붕어빵 틀 레시피 public class 클래스명 { // 객체 변수 // 메소드 // (접근제어자) // (static) } 클래스명 객체명 = new 클래스명(); 객체(Object) 실체(?) 인스턴스(Instance) 클래스와 객체의 관계입니다. 클래스로부터 객체를 선언 (인스턴스 환) 어떤 객체는 어떤 클래스의 인스턴스 생성자(Constructor) 객체가 생성될 때 자동으로 호출됩니다. 생성자 규칙 클래스명과 이름 맞춰야합니다. 리턴 타입은 없습니다. public class 클래스명 { // 바로 아래가 생성자 클래스명() {} } this : 객체 자신을 의미합니다. this() : 생성자 위에 것들을 이용한 간단한 예시 class Car { Str..

객체지향 프로그래밍(Object Oriented Programing)

절차 지향 프로그래밍(Procedural Programming) - 객체지향 언어 개념이 나오면서 기존 프로그래밍 방식을 표현하기 위해서 사용했습니다. - 큰 틀은 일렬의 동작(모듈, 함수)를 순서에 맞게 단계적으로 실행합니다. - 데이터와 속성보다는 명령어의 순서와 흐름에 포커싱 합니다. - 소프트웨어 규모가 커지면서 기능들이 복잡해지면서 추가 개발이나 유지보수의 어려움의 한계를 갖습니다. - 절차적 프로그래밍 / 구저적 프로그래밍 객체지향 프로그래밍(Object Oriented Programing) - 클래스를 생성하고 클래스로부터 객체를 만들어 객체 간의 상호작용을 이용하여 주어진 문제를 해결하는 프로그래밍 방식입니다. - 데이터인 필드와 절차인 메소드를 하나로 묶은 클래스 단위의 프로그램입니다. ..

HashMap 주요 메소드

HashMap import java.util.HashMap; 생성자 new HashMap() argument로 (int Capacity, float loadFactor)를 직접 지정할 수 있습니다. 용량은 해싱 기법을 통해 분류되는 카테고리의 갯수라고 할 수 있습니다. 사용률은 전체 용량을 변경할 조건을 의미합니다.(75%가 차면 현재 용량의 2배로 용량 변경 등) 메소드 메소드 기능 put(키, 값) 키(Key)와 값(Value)을 입력, 제네릭으로 지정한 타입에 맞는 일반 배열을 이용해 한번에 넣어줄 수 있음, 만약 중복되는 키/값을 제공하면 기존 키가 가지고 있던 값을 제공된 값으로 변경합니다. keySet() 키를 별도로 추출하여 컬렉션 형태로 반환 합니다.(Set 생성..