Skip to content

Latest commit

 

History

History
84 lines (62 loc) · 3.08 KB

day09__Java-OOP1.md

File metadata and controls

84 lines (62 loc) · 3.08 KB

📢day09__Java class

객체 지향 프로그래밍(Object Oriented Programming)

OOP개념

  • 요구사항정의 -> OOAD -> OOP

  • OOAD(Obecjt Oriented Analysis and Desigin) 개념에서 출발하였고, UML (Unified Modeling Language)에서 시발점이 되었다. 해당 개념을 JAVA에서 구현하면서 OOP(Object Oriented Programming)개념을 만들었다.

OOAD 개념

UML 개념

OOP 특징

  • Encapsulcation
    • 객체의 필드, 메소드를 하나로 묶고, 실제 구현 내용을 감추는 것을 말한다.
    • 외부 객체는 객체 내부의 구조를 알지 못하며 객체가 노출해서 제공하는 필드와 메소드만 이용할 수 있다.
    • 필드와 메소드를 캡슐화 하여 보호하는 이유는 외부의 잘못된 사용으로 인해 객체가 손상되지 않도록 하는데 있다.
    • 캡슐화란 무엇인가?
  • Inheritance
    • 상속
  • Polymorpism
    • 다형성
  • Abstraction
    • 추상화

객체(Object)란?

  • 물리적으로 존재하거나(자동차, 사람, 책 등) 추상적으로 생각할 수 있는 것(회사, 날짜, 계좌 등) 중 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것을 말한다.
  • 자바의 객체는 필드(속성)과 메소드(동작)로 구성되어 있다.
  • 현실세계의 객체를 소프트웨어 객체로 설계하는 것을 객체 모델링(Object Modeling)이라고 한다.
  • Object Modeling은 현실 세계 객체의 속성과 동작을 추러내어 소프트웨어 객체의 필드와 메소드로 정희하는 과정이라 볼 수 있다.
자동차의 Object Modling
// 자동차 객체
public class Car { 
	// Attribute (속성, 필드)
	String name;
	String color;
	int size;
	int fsize;
	int cfsize;

	//Constructor(생성자): 생성자의 이름은 Class이름과 같아야한다.
	public Car() {
		this.name = "k3";
		this.color = "white";
		this.size = 1000;
		this.fsize = 50;
		this.cfsize = 0;
	}        

	// Operation (동작, 매소드)
	public void go() {
		System.out.println("Go !");
	}
	
	public void stop() {
		System.out.println("Stop !");
	}
	
	public void addFules(int f) {
		cfsize += f ;
	}

}
객체간의 관계
  • 객체 지향 프로그램에서는 객체는 다른 객체와 관계를 맺음.
  • 관계의 종류
    • 집합 관계 : 완성품 - 부품
    • 사용 관계 : 완성품 - 사용자
    • 상속 관계 : (하위) 완성품 - (상위) 종류