💡 학습 목표다형성에 대한 개념을 이해하자.업캐스팅과 다운캐스팅이란?다형성에 활용 1. 다형성에 대한 개념을 이해하자.다형성은 하나의 데이터 타입이 다양한 형태로 바라볼 수 있는 것다형성(Polymorphism)은 객체 지향 프로그래밍에서 중요한 개념 중 하나입니다. 이는 한 요소(예: 메서드, 클래스)가 여러 형태를 가질 수 있는 능력을 의미합니다. 다형성은 코드의 유연성과 재사용성을 높여주며, 상속, 추상화, 인터페이스와 함께 사용됩니다. 시나리오 코드 1 package basic.ch20;public class Animal { public void move () { System.out.println("동물이 움직입니다."); } public..
💡 학습 목표연관관계(Association) 이란?의존관계(Dependency) 에 대해 알아 보자. 연관관계(Association)와 포함관계(Composition)는 객체지향 프로그래밍에서 객체 간의 관계를 나타내는 두 가지 다른 개념입니다. 그러나 이 둘은 완전히 독립적인 개념이 아니며, 포함관계는 연관관계의 특수한 형태로 볼 수 있습니다. 즉, 모든 포함관계는 연관관계입니다만, 모든 연관관계가 포함관계인 것은 아닙니다. 연관 관계(Association)는 일반적으로 한 클래스의 객체가 다른 클래스의 객체와 상호작용을 하지만, 둘 사이의 생명주기에 대한 의존성은 갖지 않는 경우를 의미합니다. 예를 들어, 한 은행(Bank)과 여러 고객(Customer) 사이의 관계가 연..
💡 학습 목표포함 관계(Composition)에 대한 개념을 이해하자.포함관계(Composition) 사례 연구 package basic.ch18;public class Car { String name; int price; } package ex_18;public class Engine { String name; int price; } 1. 포함 관계(Composition)에 대한 개념을 이해하자. 자동차와 엔진에 관계를 상속으로 표현하면 맞는 개념일까?-> 포함 관계는 한 클래스가 다른 클래스를 포함하는 관계를 말합니다.자바에서 포함 관계(Composition)는 한 클래스가 다른 클래스를 자신의 필드(멤버변수)로서 포함하는 것을 말합..
💡 학습 목표상속에 대한 개념을 이해하자.오버라이드란 뭘까? 1. 상속에 대한 개념을 이해하자. 상속(Inheritance)은 객체 지향 프로그래밍에서 중요한 개념 중 하나입니다. 상속은 기존의 클래스를 확장하여 새로운 클래스를 정의하는 메커니즘을 말합니다. 상속을 통해 기존 클래스의 속성과 메서드를 재사용하고 확장하여 새로운 클래스를 만들 수 있습니다. 이를 위해 상속에서는 두 개의 클래스가 필요합니다:부모 클래스(Parent Class) 또는 슈퍼 클래스(Superclass): 기존에 정의된 클래스로, 상속의 대상이 되는 클래스입니다. 부모 클래스의 속성과 메서드를 자식 클래스에게 상속합니다.자식 클래스(Child Class) 또는 서브 클래스(Subclas..
💡 학습 목표메서드 오버로딩에 대한 개념을 이해하자. 1. 메서드 오버로딩에 대한 개념을 이해하자. 메서드 오버로딩(Overloading)은 같은 이름의 메서드를 여러 개 정의하는 것을 말합니다. 이때 메서드의 시그니처(signature), 즉 메서드 이름과 매개변수의 타입, 개수, 순서가 서로 달라야 합니다. 메서드 오버로딩을 사용하면 같은 기능을 하는 메서드들을 하나의 이름으로 통일할 수 있어 코드의 가독성을 높일 수 있습니다. package basic.ch16;/** * 메서드 오버로딩이란? * 같은 이름의 메서드를 여러개 * 정의하는 것을 말한다. */public class Calculator { // 덧겜 메서드 생성 public int add..
전화번호부에 저장된 연락처 정보 CRUD 기능 구현 요구 사항저장: 사용자가 이름과 전화번호를 입력하여 전화번호부에 저장할 수 있어야 합니다.조회: 전체 연락처 목록을 조회하거나, 특정 이름으로 연락처를 검색하여 조회할 수 있어야 합니다.수정: 기존 연락처의 전화번호를 변경할 수 있어야 합니다.삭제: 전화번호부에서 연락처를 삭제할 수 있어야 합니다.선택 조회 : 이름을 입력하면 해당 전화번호가 출력 되어야 합니다.Scanner 활용, 입력 받는 데이터 타입은 전부 String 으로 처리전화번호 저장은 100까지 한정. package basic.exercise;import java.util.Scanner;public class PhoneBookManager { static..
package basic.ch15;public class BookTest { public static void main(String[] args) { // 배열이란 = 연관된 데이터를 하나의 변수에 통으로 관리하고 싶다면 - 자료구조 // 배열을 사용할 때 반드시 크기가 지정되어야 한다. Book[] books = new Book[10]; // 배열에 메모리 공간 선언 books[0] = new Book("케인의 기록", "데커드 케인"); books[1] = new Book("티리엘의 기록", "티리엘"); books[2] = new Book("아드리아의 기록", "아드리아"); books[3] = new Book("디아블로 1", "크리스 멧젠");..
💡 학습 목표1. 자료 구조에 대한 개념을 알아 보자. 2. 배열에 대한 기본 개념을 알아 보자. 3. 배열에 길이와 인덱스의 길이. 4. 배열에 길이와 요소(elements) 1. 자료 구조에 대한 개념을 알아보자. 자료 구조는 데이터를 어 떻게 조직화하고 저장하며 접근할지를 결정하는 방법입니다. 자료 구조의 특징:효율성: 데이터를 효율적으로 저장, 검색, 삽입, 삭제할 수 있어야 합니다.추상화: 데이터의 논리적인 구조와 물리적인 구현을 분리하여 추상적으로 정의해야 합니다.재사용성: 여러 응용 프로그램에서 재사용할 수 있도록 일반적이고 유연한 구조여야 합니다.자주 사용되는 자료 구조:배열(Array): 동일한 데이터 타입의 요소들을 연속된 메모리 공간에 저장하는..
💡 학습 목표static 메소드의 개념을 알자.Method Area 와 heap 영역에 실행 시점의 이해 static 메서드(함수)는 특정 클래스의 인스턴스에 속하지 않고 클래스 자체에 속합니다. 따라서 객체를 생성하지 않고도 클래스 이름을 통해 직접적으로 호출할 수 있습니다. static 메서드는 클래스의 모든 인스턴스가 공유하며, 주로 유틸리티 기능이나 공통 동작을 제공하는 데 사용됩니다. 주요 특징 정리객체 생성 없이 호출 가능인스턴스 변수에 접근 불가static 메서드는 객체의 인스턴스 변수에 직접적으로 접근할 수 없습니다. 왜냐하면 static 메서드는 객체가 생성되기 전에 호출될 수 있기 때문에 해당 객체의 상태를 알 수 없기 때문입니다. 시나리오..
💡 학습 목표static 변수에 대한 개념을 이해하자. static 변수는 프로그래밍에서 중요한 개념 중 하나입니다. 클래스 변수라고도 불리며, 클래스의 모든 인스턴스가 공유하는 변수입니다. 즉, 객체가 동일한 static 변수의 값을 공유합니다. ex) 우리는 모두 하나의 태양을 공유한다. 우리가 태어나기 전에 하나의 태양이 존재하기 때문이다. 왜 클래스 변수라고 불리는 걸까?우리가 자바 프로그램을 실행을 하면 프로그램을 수행하기 위해 운영체제로부터 할당받는 메모리들이 존재 합니다. 그 특성에 따라 영역등이 존재 하는데 그 구성요소들은 아래와 같습니다. 메모리 영역(JVM Memory, Runtime Data Area)package basic.ch12;publ..