JAVA 객체 지향 핵심 27

(JAVA)인터페이스(interface) - 19

학습 목표 1. 인터페이스에 개념을 이해하자. 2. 인터페이스와 추상클래스를 사용해서 코드 작성해보기 1. 인터페이스에 개념을 이해하자.● 모든 메서드가 추상 메서드로 선언됨 public abstract● 모든 변수는 상수로 선언됨 public static final package com._interface;//HOW-interface를 선언하며 된다.//여기안에 선언된 메서드는 모두 추상메서드가 되어야한다.//WHYpublic interface Animal { //public interface Animal //메서드 선언부만 있고 바디가 없다. public abstract void eat(); //void eat //생략이 가능하다 . abstract키워드 void m..

(JAVA) 추상 클래스(abstract class) - 18

학습 목표 1. 추상 클래스란 뭘까? 2. 추상 클래스 구현해 보기 1. 추상 클래스란 뭘까?추상 클래스(Abstract Class)는 하나 이상의 추상 메서드를 포함하고 있는 클래스입니다. 추상 메서드는 구현이 없는(메서드 몸체가 없는) 메서드이며, 추상 클래스 내에서는 이러한 추상 메서드의 정의만을 포함하고 있습니다.추상 클래스는 직접적으로 객체를 생성할 수 없으며, 다른 클래스에서 상속받아 구현되어야 합니다.추상 메서드란? package com._abstract;/** * 추상 클래스란? (abstract) * 하나 이상의 추상메서드를 포함하는 클래스 이거나 * class 키워드앞에 abstract 가지고 있으면 추상 클래스이다. *///강제적으로 타입으로만 설꼐하는 기법을 말함// abstr..

(JAVA) 스타크래프트 만들어 보기 - ver3

💡 학습 목표상속을 활용해서 코드를 작성해 보자.오버로딩 문법을 적용해 보자.다형성을 활용한 attack 메소드 작성해보기ver 0.0.3일반적으로 버전 번호는 메이저.마이너.패치 형식으로 구성되며, 각 부분은 다음과 같은 의미를 가집니다메이저 번호: 큰 변화나 새로운 기능 추가, 기존 버전과 호환되지 않을 수 있는 주요 업데이트.마이너 번호: 새로운 기능 추가나 개선이 있지만, 기존 버전과 호환되는 업데이트.패치 번호: 버그 수정, 성능 개선, 보안 패치 등 작은 규모의 업데이트.package com.starcraft_v03;public class Unit { protected String name; protected int power; protected int hp; publ..

(JAVA)다형성(Polymorphism) - 17

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

(JAVA)연관관계(Association) - 16

1. 연관 관계란?연관 관계(Association)는 두 클래스가 독립적으로 존재하면서, 필요에 따라 서로를 참조하거나 협력하는 관계를 의미합니다. 이는 객체지향 프로그래밍에서 클래스 간의 **느슨한 결합(Loose Coupling)**을 형성하며, 두 객체의 생명주기는 서로에게 종속되지 않습니다.비유: 연관 관계는 친구 관계와 비슷합니다. 친구는 서로 도움을 주고받지만, 한 친구가 없어져도 다른 친구는 독립적으로 존재할 수 있습니다.용어:참조: 한 클래스가 다른 클래스의 객체를 필드, 메서드 매개변수, 또는 반환 값으로 사용하는 것. package com.association;public class Course { private String name; public Course(String ..

(JAVA)Composition(포함 관계) - 15

1. 포함 관계(Composition)에 대한 개념을 이해하자.: 자동차와 엔진에 관계를 상속으로 표현하면 맞는 개념일까?: 포함 관계는 한 클래스가 다른 클래스를 포함하는 관계를 말합니다.자바에서 포함 관계(Composition)는 한 클래스가 다른 클래스를 자신의 필드(속성)로서 포함하는 것을 말합니다. 이 개념은 "has-a" 관계로도 알려져 있으며, 객체 간의 강한 연관성을 나타냅니다. 즉, 하나의 객체가 다른 객체 없이는 의미가 없을 때 포함 관계를 사용합니다. package com.composition;public class Engine { String name; int price; void start(){ System.out.println("엔진이 시작됩니다."..

(JAVA)상속(Inheritance) - 14

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

(JAVA)메서드 오버로딩 - 13

1. 메서드 오버로딩에 대한 개념을 이해하자.메서드 오버로딩(Overloading)은 같은 이름의 메서드를 여러 개 정의하는 것을 말합니다. 이때 메서드의 시그니처(signature), 즉 메서드 이름과 매개변수의 타입, 개수, 순서가 서로 달라야 합니다. 메서드 오버로딩을 사용하면 같은 기능을 하는 메서드들을 하나의 이름으로 통일할 수 있어 코드의 가독성을 높일 수 있습니다. package com.overloading;/** * 메소드 오버로딩이란 * 같은이름릐 메서드를 여러개 정의하는것 */public class Calculator { //덧셈 메서드 만들어 보기 public int add(int a , int b){ return a + b; } //매개변수에 데이터..

(JAVA)전화 번호 관리 프로그램 만들기(연습문제) - 12

뿌듯package book;public class TelPhone { //객체의 특성을 저장한다.\ private String name; private String telNumber; // 객체 생성사 객체의 이름과 번호를 같이 생선한다. public TelPhone(String name, String telNumber) { this.name = name; this.telNumber = telNumber; } public String getName() { return name; } public String getTelNumber() { return telNumber; }}// end of class ..

Book으로 연습문제 재복습

package book;public class Books { //객체의 속성을 부여하자 private String name; private String author; // 프라이빗한 객체의 초기값을 정해주자 public Books(String name, String author) { this.name = name; this.author = author; } //이 클래스에만 사용 가능한 프라이빗을 겟을 통하여 사용할 수 있게 핮 //이것을 사용하는 이유는 java는 객체 지향 프로그램이기에 사용한다. public String getName() { return name; } public String getAu..