객체지향 핵심 개념
■ 객체지향 개요
OOP(Object Oriented Programming)
- 여러 모듈을 조립하여 다양한 기능을 구현함
- 특정 모듈에 오류가 발생하면 수정/개선이 용이함
- 객체와 객체 간 자유로운 데이터 이동이 가능해짐
객체, 클래스, 인스턴스
객체 : 현실세계에 존재하는 유무형의 모든것( 변수, 메소드 )
클래스 : 현실 세계의 객체를 컴퓨터 메모리에 생성할 수 있는 템플릿
인스턴스 : 컴퓨터 메모리에 존재하는 객체
객체지향 언어의 주요 개념
상속 (Inheritance)
- 기존의 클래스에 변수와 메서드를 추가 정의하여 새로운 클래스를 작성함
- 클래스들 사이의 공통된 속성이나 기능이 있을 경우, 상속을 통해 코드의 재사용성을 높임
- 상속을 통해 객체들 사이의 계층 구조를 이룰 수 있음
- 상위계층으로 갈수록 일반화,보편화 / 하위계층으로 갈수록 특수화, 개별화된 형태로 만들어짐
- Extends라는 예약어를 통해 생성
public class Car{
string name;
String getname(){
return name;
}
}
public class Taxi extends Car{
int fare;
}
∴Taxi 클래스는 부모클래스 Car로부터 변수와 메서드 모두 물려받음.
public class Main{
public static void main(String args[]){
Taxi myTaxi = new Taxi();
myTaxi.name = "대현운수";
myTaxi.fare = 3400;
System.out.println(myTaxi.getname());
}
}
부모클래스와 자식클래스의 관계는 일반화, 특별화 관계 ( is a~)에 있어야함.
다형성 (Polymorphism)
- 하나의 인터페이스를 이용해 서로 다른 구현을 제공함
- 메서드 오버로딩(Overloading) : 한 클래스 안에 같은 이름의 메서드를 여러개 정의하며 인자의 개수나 유형을 다르게 해놓은 형태
- 메서드 오버라이딩(Overriding) : 하위 클래스가 상위클래스의 메서드를 재정의 / 형태는 상위클래스에서 선언된 형태와 같음.
추상화 (Abstraction)
- 구체적인 사실들을 일반화시켜 기술하는 것
- 현실세계에 존재하는 다양한 객체들의 공통된 특성을 모아 일반화해 놓는 것
- ex) 비행기, 자동차, 열차, 배 -> 운송수단
- 이는 클래스를 정의하는데 중요한 역할
캡슐화 (Encapsulation)
- 변수와 메서드를 하나의 추상화된 클래스로 묶는 과정 ( 독립적으로 동작하지 않도록 함 )
- 객체가 제공하는 메서드를 통해 객체를 이용, 데이터가 실제로 어떻게 처리되는지 알 필요 없음.
정보 은닉 (Information Hiding)
- 캡슐화된 변수나 메서드를 선택적으로 공개하거나 숨길 수 있음(정보은닉)
- public, protected, private 예약어 사용.
메시지 (Message)
- 객체 간 서로 통신하는 방법
- 서로 메시지를 주고받기 때문에 여러 객체는 동일한 프로세스를 가질 필요 없음
[참고] : SWExpertAcademy
'Etc.. > SWExpertAcademy' 카테고리의 다른 글
[Java Programming] 객체지향 핵심 원리(3) (0) | 2021.07.17 |
---|---|
[Java Programming] 객체지향 핵심 원리(2) (0) | 2021.07.13 |
[Java Programming] 자바언어의 구조와 기본문법 (4) (0) | 2021.07.11 |
[Java Programming] 자바언어의 구조와 기본문법 (3) (0) | 2021.07.05 |
[Java Programming] 자바언어의 구조와 기본문법 (2) (0) | 2021.07.05 |