객체 지향의 4가지 특징

Lee·2023년 7월 24일

1. 캡슐화

객체의 변수나 메서드를 캡슐로 만들어 외부로부터 보호하며 접근 제한자를 통해 필요한 부분만 외부로 노출시키는 특성이다.

public class Receipt {
	private int price;	// private 접근 제한자를 사용해 클래스 외부에서 접근 할 수 없다.
    private int mount;
    
    public int getTotalPrice {		// public 접근 제한자를 사용해 외부에서 접근 가능하다.
    	return this.price * this.mount;
    }
}

2. 추상화

구체적인 요구사항의 공통적인 부분을 모아 객체로 만들어 관리하는 것을 의미

public class Car implements Vehicle {	// 추상화된 Vehicle 인터페이스를 구현해 사용
	@Override
    public void move() {
    	System.out.Println("시동");
    }
    
    @Override
    public void break() {
    	System.out.Println("정지");
    }
    
    @Override
    public void backward() {
    	System.out.Println("후진");
    }
}

public interface Vehicle {	// 운송수단이 가지는 공통적인 기능을 interface로 관리
	void move();
    void break();
    void backward();
}

3. 다형성

하나의 변수 명이나 메서드 명이 상황에 따라 다르게 동작할 수 있는 것을 의미한다.

public class Cat {
	private String name;
    private int age;
    
    public Cat(String name, int age) {
    	this.name = name;
        this.age = age;
    }
    
    public Cat(String name) {
    	this.name = name;
    }
}

4. 상속

부모 클래스의 변수나 메서드를 자식 클래스가 그대로 사용할 수 있으며 변경이 필요한 경우 자식 클래스에서 해당 기능을 수정하여 사용 할 수 있는 특성이다.

public class Parent {
	private String lastName;
    
    public void method() {
    	System.out.Println("부모 클래스 메서드");
    }
}

public class Child extends Parent {
	@Overide
    public void method() {
    	System.Out.Println("자식 클래스 메서드");
    }
}
profile
발전하고 싶은 백엔드 개발자

0개의 댓글