1. 열거형 (Enum) 열거형이란? 서로 연관된 상수들의 집합을 의미한다. enum Seasons {SPRING, SUMMER, FALL, WINTER} public class Main { public static void main(String[] args) { Seasons seasons = Seasons.SPRING; switch (seasons) { case SPRING: System.out.println("봄"); break; case SUMMER: System.out.println("여름"); break; case FALL: System.out.println("가을"); break; case WINTER: System.out.println("겨울"); break; } } } //출력값 봄 열거..
Chapter 1. 다형성 💡 학습 목표 - 자바 객체지향 프로그래밍에서 다형성이 가지는 의미와 장점을 이해할 수 있다. - 참조변수의 타입 변환에 대한 내용을 이해하고, 업캐스팅과 다운캐스팅의 차이를 설명할 수 있다. - instanceof 연산자를 언제 어떻게 활용할 수 있는 지 이해하고 설명할 수 있다. - 코딩 예제를 실제로 입력해보면서 다형성이 실제로 어떻게 활용되는 지 이해할 수 있다. 다형성이란 “여러 개”를 의미하는 poly와 어떤 ‘형태’ 또는 ‘실체’를 의미하는 morphism의 결합어로 하나의 객체가 여러 가지 형태를 가질 수 있는 성질을 의미한다. 자바에서 다형성이란 한 타입의 참조변수를 통해 여러 타입의 객체를 참조할 수 있도록 만든 것을 의미한다. class Friend { pu..
Chapter 1. 상속 학습목표 - 상위 클래스-하위 클래스의 상속 관계의 핵심을 이해하고, 그 장점을 설명할 수 있다. - extends 키워드를 사용하여 두 개 이상의 클래스 간 상속 관계를 정의할 수 있다. - 포함관계와 상속관계의 차이를 설명할 수 있다. - 상속 관계에서 사용할 수 있는 메서드 오버라이딩의 정의, 성립 조건, 장점을 이해하고 이를 활용할 수 있다. - super 와 super() 의 차이를 설명할 수 있다. - Object 클래스가 자바 클래스의 상속계층도에서 최상단에 위치한다는 사실을 이해할 수 있다. 상속이란 기존의 클래스를 재활용하여 새로운 클래스를 작성하는 자바의 문법 요소를 의미한다. 가장 단순한 형태로 보면 두 클래스를 상위 클래스와 하위 클래스로 나누어 상위 클래스..
Chapter 1. 생성자 학습 목표 생성자의 핵심 개념과 기본 문법을 이해하고 사용할 수 있다. 생성자가 메서드와 구분되는 두 가지 차이를 이해하고 설명할 수 있다. 메서드 오버로딩이 생성자에서 어떻게 구현될 수 있는 지 확인하고 이해할 수 있다. 기본 생성자와 매개변수가 있는 생성자의 차이를 설명할 수 있다. this 와 this() 의 차이에 대해 설명할 수 있다. 생성자(Constructor) 객체를 생성하는 역할을 하는 클래스의 구성 요소로서, 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드다. 메서드와 비슷하다고 생각되지만 두 가지 차이점이 있다. 첫 번째, 생성자의 이름은 반드시 클래스의 이름과 같아야 한다. 두 번째, 생성자는 리턴 타입이 없다. 생성자의 기본 구조는 아래와 같다. 클..
객체지향 프로그래밍의 이해 객체지향 프로그래밍(OOP; Object Oriented Programming)의 핵심 개념은 ‘실제 세계는 객체들로 구성되어 있으며, 발생하는 모든 사건들은 이 객체들 간의 상호작용을 통해 발생한다’는 전제로부터 출발한다. 즉, 사물의 속성(state)과 기능(behavior)을 분석한 후에 프로그래밍 변수와 함수로 정의함으로 실제 세계를 최대한 컴퓨터 프로그래밍에 반영하고자 하는 시도라 설명할 수 있다. 객체지향 프로그래밍의 장점 기존 코드를 활용해서 새로운 코드를 상대적으로 손쉽게 작성할 수 있고, 쉽게 코드를 변경할 수 있다. 즉, 프로그램 개발 및 유지 보수에 드는 비용과 시간이 줄어들며 데이터를 손실 없이 관리하기에 용이하다. Chapter 1. 클래스와 객체 학습 ..
for문 조건식이 참인 동안 주어진 횟수만큼 실행문을 반복적으로 수행한다. public class Main { public static void main(String[] args) { int sum = 0; // for (초기화; 조건식; 증감식) for(int num = 0; num < 10; num++) { sum += num; } System.out.println(sum); // 1~9의 합인 45가 출력됩니다. } } 초기화는 for문이 시작할 때 최초 한 번만 수행되며 사용할 변수의 초깃값을 정한다. 조건식 안의 값이 true라면 실행문을 실행, false라면 더이상 블록을 실행하지 않고 for문 밖으로 빠져나온다. 증감식은 반복 횟수를 결정한다. 향상된 for문 (Enhanced for문) 컬..
Chapter 1. 연산자 💡 학습 목표 산술 연산자를 활용할 숫 있다. 증감 연산자를 활용할 수 있다. 복합 대입 연산자를 활용할 수 있다. 비교 연산자를 활용할 수 있다. 연산자 우선순위를 이해한다. 1.1 산술 연산자 산술 연산자 : 사칙연산에 사용되는 연산자(+,-,*,/)와 나머지 연산자(%) 증감 연산자 : 변수의 값을 1씩 증가시키거나 감소시키는 연산자이다. 전위형 증감연산자(++i, —i) : 증감 연산을 먼저 수행한 후 결과값을 적용시키는 것 후위형 증감연산자(i++,i—) : 기존의 값을 먼저 적용시키고 증감 연산을 수행하는 것을 의미한다. 복합 대입 연산자 num1 = num1 + 2;를 num2 += 2;와 같이 결합하여 사용하는 것 1.2 비교 연산자 대소 비교 연산자(>, 올해는..
Chapter 1. 자바의 개요 💡 학습 목표 자바의 4가지 특징을 이해할 수 있다. JVM의 기능과 필요성을 이해할 수 있다. main 메서드가 무엇인지 이해한다. 자바의 특징 운영체제에 독립적 특정 CPU에서만 작동하거나 특정 OS에 따라 다르게 작성해야 하는 C, C++ 등의 언어와 다르게 JRE (JVM + 표준 클래스 라이브러리)가 설치되어 있는 모든 운영체제에서 실행이 가능하다. 객체 지향 언어(OOP; Object Oriented Programming) 함수형 프로그래밍 지원 자동 메모리 관리 가비지 컬렉터를 실행시켜 자동으로 사용하지 않는 메모리를 수거한다. JVM(Java Virtual Machine) : 자바 프로그램을 실행시키는 도구 메서드: 어떤 기능을 수행하기 위한 코드들을 묶어놓..
Chapter 1. Git 💡 학습 목표 버전 관리 시스템의 필요성을 이해할 수 있다. Git의 핵심 기능을 이해할 수 있다. Git의 영역 및 핵심 개념을 이해할 수 있다. Git 명령어를 사용하여 Git의 협업, 백업 기능을 사용할 수 있다. 버전 관리를 사용하는 이유 파일이 변경되면 변경 이력을 저장할 수 있다. 이전 버전으로 돌아갈 수 있다. 어떤 변경사항이 발생했는지 알아보기 쉽다 협업하기에 좋다. 백업용 Git: 소스 코드 기록을 관리하고 추적할 수 있는 버전 관리 시스템 아래 그림과 같이 특정 시점에 생성된 백업 복사본을 스냅샷이라고 하며 스냅샷을 만들어주는 작업을 commit이라고 한다. Github: Git Repository를 관리할 수 있는 클라우드 기반 서비스