Goal enum 대해 알아본다 enum 메모리 저장방식 enum 내부 동작원리 enum 객체의 메소드 enum 필드 enum 이란 ? enum은 서로 관련있는 상수들을 하나의 그룹으로 묶어서 사용하는 자료형이다. 예로, 계절에 대한 데이터는 봄, 여름, 가을, 겨울이라는 네 개의 값만을 가진다. 이와 같이 한정된 값만을 갖는 데이터 타입이 열거타입이다. public enum Week { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } enum을 사용하는 이유 enum을 사용하면 상수들을 의미 있는 이름으로 사용할 수 있고, 의도하지 않은 값의 입력을 방지할 수 있다. 또한, 코드의 가독성을 높일 수 있다. 열거 타입과 열거 상수 pub..
객체지향프로그래밍
Goal 전략 패턴에 대해 알아보고 이해한다 전략 패턴이 필요한 경우의 예시를 알아본다 문제를 파악하고, 디자인 원칙에 대해 알아본다 디자인 원칙에 입각한 전략패턴 이해하기 캡슐화된 행동 살펴보고 이해하기 클래스를 합치는 방법은 무엇인가? 전략 패턴 (Strategy Parttern) 객체 동작을 실시간으로 바뀌도록 할 수 있게 하는 행위 디자인 패턴 이다. 여기서 '전략'이란 일종의 알고리즘이 될 수 도 있으며, 기능이나 동작이 될 수도 있는 특정한 목표를 수행하기 위한 행동 계획을 말한다. 왜 or 언제 전략 패턴을 사용하는가? 어떤 일을 수행하는 알고리즘이 여러가지 일때, 동작들을 미리 전략으로 정의함으로써 손쉽게 전략을 교체할 수 있는, 알고리즘 변형이 빈번하게 필요한 경우에 적합한 패턴이기 때문..
자바 프로그램의 개발과 구동 현실 세계 가상 세계(자바 월드) 소프트웨어 개발 도구 JDK - 자바 개발 도구 JVM용 소프르웨어 개발 도구 운영체제 JRE - 자바 실행 환경 JVM용 OS 하드웨어 - 물리적 컴퓨터 JVM - 자바 가상 기계 가상의 컴퓨터 JDK < JRE < JVM Write Once Run Everywhere JVM이 중재자로서 각 플랫폼(윈도우, 유닉스, 리눅스 등)에서 프로그램을 구동하게끔 해줌 기계어를 포함한 모든 프로그래밍 언어의 메모리 사용 방식 코드 실행 영역 데이터 저장 영역 객체지향 프로그래밍 언어의 메모리 사용 방식 코드 실행 영역 스태틱 (static) 영역 스택 (stack) 영역 힙(Heap) 영역 자바에 존재하는 절차적 / 구조적 프로그래밍의 유산 함수 -..
Goal : 상속이 무엇인지 알아보고, 코드에서는 어떻게 구현되는지 알아본다. 상속이란? 객체 지향 프로그래밍(OOP)에서, 상속(inheritance)은 객체들 간의 관계를 구축하는 방법이다. 클래스로 객체가 정의되는 고전 상속에서, 클래스는 기반 클래스, 수퍼클래스, 또는 부모 클래스 등의 기존의 클래스로부터 속성과 동작을 상속받을 수 있다. 그 결과로 생기는 클래스를 파생 클래스, 서브클래스, 또는 자식 클래스라고 한다. 상속을 통한 클래스들의 관계는 계층을 형성한다. 프로토타입 기반 프로그래밍에서는, 객체가 클래스를 따로 정의할 필요 없이 다른 객체로부터 직접 정의될 수 있다. 이러한 특징을 차등 상속이라고 부른다. 백문이 불여일타. 코드로 개념을 이해해보자! 예제 1. 필수 값이 없는 부모 클래..
Goal : 생성자는 무엇인지 알아보고 메서드와 차이를 알아본다. Constructor 생성자란 ? 생성자(영어: constructor, 혹은 약자로 ctor)는 객체 지향 프로그래밍에서 객체의 초기화를 담당하는 서브루틴을 가리킨다. 생성자는 객체가 처음 생성될 때 호출되어 멤버 변수를 초기화하고, 필요에 따라 자원을 할당하기도 한다. 객체의 생성 시에 호출되기 때문에 생성자라는 이름이 붙었다. 생성자는 대체로 멤버 함수와 같은 모양을 하고 있지만, 값을 반환하지 않는다는 점에서 엄밀한 의미의 함수는 아니다. A constructor is a member function of a class that is called for initializing objects when we create an object..
Goal : 캡슐화의 의도 & 목적을 이해하고 코드에서는 어떻게 구현되는지 알아본다 Encapsulation 캡슐화란 ? 객체 지향 프로그래밍 (OOP)에서 캡슐화는 데이터를 해당 데이터에 대해 작동하는 메서드와 번들로 묶거나 일부 개체 구성 요소에 대한 직접 액세스를 제한하는 것을 말합니다. 캡슐화는 클래스 내부의 구조화된 데이터 개체의 값이나 상태를 숨기는 데 사용되며 숨겨진 구현 세부 정보를 노출하거나 메서드에서 유지 관리하는 상태 불변성을 위반할 수 있는 방식으로 클라이언트가 직접 액세스하는 것을 방지합니다. public class MotorBike { //state int speed; //behaviour void start(){ System.out.println("MotorBike.start"..