티스토리 뷰

반응형

캡슐화

public class Animal {
    public void move() {
        System.out.println("움직입니다.");
    }
}

public class Bird extends Animal {
    @Override
    public void move() {
        System.out.println("날아갑니다.");
    }
}

객체의 속성과 메서드를 하나의 단위로 묶고, 외부에서 직접 접근하지 못하도록 보호하는것.

이를 통해 객체의 내부 구조를 숨길 수 있으며, 객체간의 상호작용은 객체의 인터페이스를 통해서만 가능

연관있는 메소드를 모아서 응집도를 높이고, 연관있는데 메소드를 모음

 

상속

부모 클래스가 가진 속성과 메서드를 자식 클래스가 물려받는것.

이를 통해 자식 클래스는 부모 클래스의 기능을 확장하거나 수정하여 새로운 기능을 추가, 재사용성을 높여줌

상속은 클래스 간의 계층 구조를 형성하여 객체 간의 관계를 명확히 표현할 수 있다.

 

다형성

같은 이름의 메서드를 각기 다른 기능으로 구현할 수 있게 하는것. 이를 통해 객체의 유연성과 확장성을 높여줌. 오버로딩과 오버라이딩으로 구현 (객체 간의 관계를 유연하게 처리하는 데에 사용)

 

*오버로딩

같은 이름의 매서드를 매겨변수의 타입,개수등을 다르게 하여 여러개 정의할 수 있는 것

public class Calculator {
    public int add(int a, int b) {
        return a + b;
    }
    public double add(double a, double b) {
        return a + b;
    }
}

*오버라이딩

부모 클래스가 가지고 있는 메서드를 자식 클래스에서 같은 이름으로 다시 정의하는것(다형성을 구현하는 중요한 방법중 하나)

 

 

추상화

인터페이스와 추상클래스를 통해 구현하는 방법으로, 핵심적인 기능만 적는 방식. 이를 통해 객체의 복잡도를 낮추고 코드의 가독성과 유지보수성을 높일 수 있다.

 

*인터페이스

클래스 간의 통신을 위한 목적으로는 인터페이스를 사용한다. 

인터페이스는 상수(constant)와 추상 메서드(abstract method)만을 가지고 있으며, 다른 클래스에서 이를 구현(implement)하여 사용합니다. 이를 통해 클래스 간 결합도를 낮추고, 유연성을 높일 수 있습니다. 인터페이스는 다중 상속이 가능하기 때문에, 다양한 기능을 구현하는 데에 유용하다.

public interface Animal {
    public void move();
}

 

*추상클래스

공통된 기능을 상속하거나 반드시 구현해야 하는 메서드가 있을 경우 사용한다.

추상 클래스는 구체적인 구현을 포함할 수 있기 때문에, 인터페이스보다 더 구체적인 추상화를 제공할 수 있습니다. 추상 클래스는 자식 클래스에게 공통된 기능을 상속(inheritance)하거나, 자식 클래스에서 반드시 구현해야 하는 메서드를 추상 메서드로 선언할 수 있습니다. 이를 통해 코드의 재사용성과 유지보수성을 높일 수 있습니다. 있기때문에 인터페이스보다 구체적인 구현이 가능

public abstract class Shape {
    public void draw() {
        System.out.println("도형을 그립니다.");
    }
    public abstract double getArea();
}

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함