Java 164

2024.04.24 추상 클래스(abstract class)

학습 목표 1. 추상 클래스란 뭘까?2. 추상 클래스 구현해 보기 추상 클래스란 뭘까?추상 클래스(Abstract Class)는 하나 이상의 추상 메서드를 포함하고 있는 클래스입니다. 추상 메서드는 구현이 없는(메서드 몸체가 없는) 메서드이며, 추상 클래스 내에서는 이러한 추상 메서드의 정의만을 포함하고 있습니다.추상 클래스는 직접적으로 객체를 생성할 수 없으며, 다른 클래스에서 상속받아 구현되어야 합니다.추상 메서드란? int add(int x, int y); // 선언 int add(int x, int y){ } // 구현부가 있음, 추상 메서드 아님 시나리오 코드1 package basic.ch21;/* * 추상 클래스란? * 추상 메서드를 포함하고 있거나 ..

Java 2024.04.24

2024.04.24 다형성(Polymorphism)의 활용

논리적으로 작업 순서 생각하기클래스들을 설계 자신만에 기능, 속성 정의다형성 적용(상속) 공통 속성 및 기능 묶기기능 만들어 주기 요구 조건 : instanceof 연산자 활용코드 테스트 실행 시나리오는 스스로 만들어 보기package basic.exercise.toy;// 클래스 - 인형뽑기// 상품들이 존재 가능 // 사자인형, 곰인형, 에어팟// 요구 조건 // 배열을 활용해서 객체들을 담아 주세요./* * public toyMachine() { products = new Product[30]; } */ // 사용자가 돈을 넣고 게임을 한다. /* * public showInfo() { * // for sys * // 특정 상품에 변..

Java 2024.04.24

2024.04.24 다형성(Polymorphism)

학습 목표 1. 다형성에 대한 개념을 이해하자. 2. 업캐스팅과 다운캐스팅이란?3. 다형성에 활용 다형성에 대한 개념을 이해하자.다형성은 하나의 데이터 타입이 다양한 형태로 바라볼 수 있는 것  --> ex) '배'  :  사람신체의 '배', 바다에 떠다니는 '배'다형성(Polymorphism)은 객체 지향 프로그래밍에서 중요한 개념 중 하나입니다.이는 한 요소(예: 메서드, 클래스)가 여러 형태를 가질 수 있는 능력을 의미합니다.다형성은 코드의 유연성과 재사용성을 높여주며, 상속, 추상화, 인터페이스와 함께 사용됩니다.  시나리오 코드 1 package basic.ch20;public class Animal { public void move() { System.out..

Java 2024.04.24

2024.04.24 의존관계

의존관계(Dependency) 에 대해 알아 보자. 의존관계는 한 클래스가 다른 클래스를 사용하는 관계를 나타냅니다.즉, 어떤 클래스가 다른 클래스를 참조하는 것을 말합니다. 이는 한 클래스의 변경이 다른 클래스에 영향을 줄 수 있음을 의미합니다. 예를 들어, 자동차 클래스가 엔진 클래스에 의존할 때, 자동차 클래스는 엔진을 사용하고 있으며, 엔진 클래스의 변경이 자동차 클래스에 영향을 줄 수 있습니다. 도전 문제 - 학생과 학급은 어떤 관계로 바라볼 수 있을까? Classroom 객체와 Student 객체는 연관 관계를 형성하고 있습니다. 단 Classroom 안에 Student[ ] 배열을 가지고 있지만 단순히 저장하는 용도 이며 Student 필드를 가지고 있지 않습니다. 이는 직접 적인 포홤 관계..

Java 2024.04.24

2024.04.23 연관, 의존 관계란?

학습 목표 1. 연관관계(Association) 이란? 2. 의존관계(Dependency) 에 대해 알아 보자. **연관관계(Association)**와 포함관계(Composition)는 객체지향 프로그래밍에서 객체 간의 관계를 나타내는 두 가지 다른 개념입니다. 그러나 이 둘은 완전히 독립적인 개념이 아니며, 포함관계는 연관관계의 특수한 형태로 볼 수 있습니다. 즉, 모든 포함관계는 연관관계입니다만, 모든 연관관계가 포함관계인 것은 아닙니다. 연관 관계(Association)는 일반적으로 한 클래스의 객체가 다른 클래스의 객체와 상호작용을 하지만, 둘 사이의 생명주기에 대한 의존성은 갖지 않는 경우를 의미합니다. 예를 들어, 한 은행(Bank)과 여러 고객(Customer) 사이의 관계가 연관 관계의 ..

Java 2024.04.23

2024.04.23 Composition(포함관계)

학습 목표 1. 포함 관계(Composition)에 대한 개념을 이해하자. 2. 포함관계(Composition) 사례 연구 package basic.ch18; public class Car { String name; // 자동차 이름 int price; // 자동차 가격 Engine engine; // 포함관계 } package basic.ch18; public class Engine { String name; // 엔진 이름 int price; // 엔진 가격 } 포함 관계(Composition)에 대한 개념을 이해하자. : 자동차와 엔진에 관계를 상속으로 표현하면 맞는 개념일까? : 포함 관계는 한 클래스가 다른 클래스를 포함하는 관계를 말합니다. 자바에서 포함 관계(Composition)는 한 클래..

Java 2024.04.23

2024.04.23 상속(Inheritance)

상속에 대한 개념을 이해하자. 학습 목표 1. 상속에 대한 개념을 이해하자. 2. 오버라이딩 이란 뭘까? 상속(Inheritance)은 객체 지향 프로그래밍에서 중요한 개념 중 하나입니다. 상속은 기존의 클래스를 확장하여 새로운 클래스를 정의하는 메커니즘을 말합니다. 상속을 통해 기존 클래스의 속성과 메서드를 재사용하고 확장하여 새로운 클래스를 만들 수 있습니다. 이를 위해 상속에서는 두 개의 클래스가 필요합니다: 부모 클래스(Parent Class) 또는 슈퍼 클래스(Superclass) 기존에 정의된 클래스로, 상속의 대상이 되는 클래스입니다. 부모 클래스의 속성과 메서드를 자식 클래스에게 상속합니다. 자식 클래스(Child Class) 또는 서브 클래스(Subclass) 부모 클래스를 확장하여 새롭..

Java 2024.04.23

2024.04.23 메서드 오버로딩

학습 목표 1. 메서드 오버로딩에 대한 개념을 이해하자. 메서드 오버로딩에 대한 개념을 이해하자. 메서드 오버로딩(Overloading)은 같은 이름의 메서드를 여러 개 정의하는 것을 말합니다. 이때 메서드의 시그니처(signature), 즉 메서드 이름과 매개변수의 타입, 개수, 순서가 서로 달라야 합니다. 메서드 오버로딩을 사용하면 같은 기능을 하는 메서드들을 하나의 이름으로 통일할 수 있어 코드의 가독성을 높일 수 있습니다. package basic.ch16; /* * 메서드 오버로딩이란? * 같은 이름의 메서드, 함수를 여러개 정의하는 것을 말한다. * 단, 매개변수의 개수가 다른던지 해야한다. */ public class Calculator { // 코드의 시작 // 덧셈 메서드 생성 publi..

Java 2024.04.23

2024.04.22 전화번호관리 프로그램 만들기

전화번호부에 저장된 연락처 정보 CRUD 기능 구현 요구 사항 저장: 사용자가 이름과 전화번호를 입력하여 전화번호부에 저장할 수 있어야 합니다. 조회: 전체 연락처 목록을 조회하거나, 특정 이름으로 연락처를 검색하여 조회할 수 있어야 합니다. 수정: 기존 연락처의 전화번호를 변경할 수 있어야 합니다. 삭제: 전화번호부에서 연락처를 삭제할 수 있어야 합니다. 선택 조회 : 이름을 입력하면 해당 전화번호가 출력 되어야 합니다. Scanner 활용, 입력 받는 데이터 타입은 전부 String 으로 처리 전화번호 저장은 100까지 한정. package basic.exercise; public class PhoneBook { // 속성 private String name; // 이름 private String n..

Java 2024.04.22