"객체 지향의 특징 4가지"

ggyu_55·2023년 3월 28일
0

메모

목록 보기
4/46

1. 캡슐화

public Capsule {
	public int num1=0;			
    priavate int num2=3;	
    protected int num3= 5;
    int num4 =5; 		
}

자주 같이 쓰는 데이터와 기능들을 모아놓고 객체라고 부르고,
객체를 껍질로 감싸 외부에서 객체의 기능과 데이터에 함부로 접근하지 못하도록 하는 것.
첫번째 방법으로는 접근지정자로 캡슐화를 수행할 수 있다. 전역변수와 지역변수 또한 캡슐화의 일종!!
두 번째 방법으로는 getter/setter 메서드를 통해 구현할 수 있다.
즉, 클래스 안에 서로 연관있는 속성과 기능들을 하나의 캡슐(capsule)로 만들어 데이터를 외부로부터 보호하는 것을 의미한다.


2. 추상화

public interface Abstract {
    public int getSum(int a,int b);
    public int getMulti(int a,int b);
}

공통적인 기능과 특성만을 추출하여 각자 용도에 맞게 제각기 사용할 수 있도록 하는 것. 즉, 객체의 공통적인 속성과 기능을 추출하여 정의하는것을 의미한다.
자바에서 추상화를 구현할 수 있는 문법 요소로는 추상 클래스(abstract class)인터페이스(interface)가 있다.


3. 다형성

public int getSum(int a,int b){
	return a+b;
}
public int getSum(int a,int b,int c){
	return a+b+c;
}

하나의 이름 아래에서 여러가지 기능을 할 수 있도록 하는 것. 예시 코드와 같이, 같은 이름의 메서드가 상황에 따라 다른 역할을 수행할 수 있다. 즉, 어떤 객체의 속성이나 기능이 상황에 따라 여러 가지 형태를 가질 수 있음을 의미한다.


4. 상속성

public class Calculate implements Abstract{  // 구현도 일종의 상속아닌가
    @Override
    public int getSum(int a, int b) {
        return a+b;
    }
    @Override
    public int getSum(int a, int b, int c) {
        return a+b+c;
    }
}

어떤 객체에서 소유한 자원을 다른 객체에서도 재사용할 수 있도록 하는 것.
기존의 클래스를 재활용하여 새로운 클래스를 작성하는 문법요소를 말한다. 공유하는 데이터나 기능을 여러 번 작성할 필요없이 한 번만 정의한 뒤 이에 접근하여 재사용한다.

0개의 댓글