728x90
반응형
객체 지향 프로그래밍
현실 세계 객체, 클래스, 객체의 관계 현실의 객체가 갖는 속성과 기능은 추상화 되어 클래스에 정의되고, 클래스는 구체화 되어 프로그램의 객체(instance, object) 가 된다.
EX: 붕어빵 틀 == type 규정
붕어빵 == 객체
즉, 클래스는 객체를 정의해 놓은 객체의 설계도 or 틀로 직접 사용할 수 없고 직접 사용되는 객체를 만들기 위한 "틀" 을 제공할 뿐이다. 반면**, 객체** (instance, object ) 는 클래스를 데이터 타입으로 메모리에 생성된 것이다.
/* 붕어빵틀 클래스는 틀일 뿐,
* 직접사용할수 없다*/
Public class 붕어빵틀{
// 맴버 변수:
String Name, Fillings ;
int age; //unit: min
// 메서드 :
boolean 식는다 (age) {
age = this.age;
return age>= 10 ? true : false;
}
}
/* 붕어메이커라는 클래스에서,
* 붕어빵*/
public class 붕어메이커 {
public static void main(String[]args)
{
붕어빵틀 붕어빵 = new 붕어빵틀();
붕어빵.Name = "붕어 없는 붕어빵";
붕어빵.age = "1";
붕어빵.fillings = "슈크림";
붕어빵.식는다(age) ; //결과: false
}
}
객체 지향 프로그래밍이란?
🤦🏻♀️ OOP is APIE,
A : bstraction (추상화) - 하나의 객체를 추상화 해서 클래스를 구성
P : olymorphism (다형성) - 하나의 객체를 여러가지 타입으로 참조
I : nheritacne (상속) - 부모클래스의 자산을 물려받아 자식을 정의함으로 코드의 재사용
E : ncapsulation ( 캡슐화) - 데이터를 외부에 직접 노출시키지 않고 메서드를 이용해 보호
아래 APIE 페이지에 각 객체 지향적인 요소를 정리해놓았다.
추상화 링크 : https://junebee.tistory.com/50
다형성 링크 : https://junebee.tistory.com/52
상속 : https://junebee.tistory.com/51
캡슐화 : https://junebee.tistory.com/53
<주체 지향> 붕어빵이 너무 먹고 싶은 박모씨는, 팥과 밀을 경작하고 광산에 가서 철을 얻고 대장간에 가서 재련해서 붕어빵틀을 만들고 밀가루를 만들기위해... → 박모씨는 붕어빵을 못먹었다고..
<객체 지향> 붕어빵이 너무 먹고싶은 박모씨는, 포장마차에 가서 붕어빵을 사왔다 → 붕어빵 냠냠
객체 지향 프로그래밍의 장점: 블록 형태의 모듈화된 프로그래밍
- 신뢰성이 높은 프로그래밍이 가능하다
- 추가/ 수정 / 삭제가 용이하다
- 재사용성이 높다
728x90
반응형
'취준 > JAVA' 카테고리의 다른 글
상속 (0) | 2022.05.17 |
---|---|
추상화 (0) | 2022.05.17 |
Class Case Exception (0) | 2022.05.17 |
JAVA Basics (0) | 2022.05.12 |
Variables (0) | 2021.07.15 |