프로그래밍/Java12 상속, 컴포지션 상속과 컴포지션은 재사용성이 목적이다. 1. 기계상의 차이 때문에 하나를 고를 때 - 상속은 개체를 생성할 때 메모리가 한 덩어리지만 컴포지션은 메모리가 여러 덩어리를 사용한다. 2. 용도때문에 상속을 골라야 할 때 - 다형성을 사용하려면 상속을 사용해야 한다. 3. 관리의 효율성을 생각할 때 - 코드 중복 등은 상속, 깊은 상속 관계를 사용하고 있을 때는 컴포지션을 활용하는게 낫다. 4. 그 외 ECS(Entity Component System) - 코드 변경 없이 자유롭게 개체를 만들 수 있도록 하는 것이 목적이다. 상속과 컴포지션은 같이 사용할 수도 있다. 2023. 1. 29. 상속 상속(Inheritance) - 이미 존재하는 클래스를 기반으로 새 클래스를 만드는 것이다. 기존 클래스의 동작과 상태를 그대로 물려 받는다. 새 클래스만의 동작과 상태를 추가할 수 있다. 거의 모든 사람들이 OOP의 핵심이라 여기는 특성이다. 현재도 상속을 지원하지 않으면 OO 언어라고 보지 않기도 한다. 다형성의 기반이 되는 특성이다. 부모 클래스 - 이미 존재하는 클래스를 말한다. parent class, base class 자식 클래스 - 새 클래스를 말한다. child class, derived class 자식 클래스 이름 extends 부모 클래스 이름 부모 클래스 먼저 초기화 한 후에 자식 클래스의 초기화가 이뤄져야 한다. super - 부모 클래스의 생성자를 호출하는 방법이다. this는 .. 2023. 1. 17. Static, 디자인 패턴, 내포 클래스 static - 변수와 메서드를 만들 때 사용할 수 있다. 정적 멤버, 클래스 멤버라고도 하는데 개체(인스턴스) 소속이 아닌 클래스 소속이 된다. 전역 변수처럼 사용할 수도 있다. 생성자가 없어도 사용이 가능하다. 그 이유는 개체가 만들어진 개수와는 상관없이 클래스는 하나만 존재하기 때문에 자신에게 해당 메서드가 없으면 클래스로 가서 확인할 수 있기 때문이다. 생성자를 만들고 개체를 만들어서 사용할 수 있다. 생성자를 private으로 두면 개체를 못 만들게 할 수도 있다. 정적 메서드에서 비정적 메서드에는 접근이 불가능하다. 비정적 메서드에서 정적 메서드는 접근할 수 있다. 클래스에 속한 메서드가 개체에 속한 멤버(함수/변수)에는 접근이 불가능하다. 클래스 내부에 있기 때문에 접근 범위를 제어할 수 있.. 2023. 1. 13. Static static - 변수와 메서드를 만들 때 사용할 수 있다. 정적 멤버, 클래스 멤버라고도 하는데 개체(인스턴스) 소속이 아닌 클래스 소속이 된다. 전역 변수처럼 사용할 수도 있다. 생성자가 없어도 사용이 가능하다. 그 이유는 개체가 만들어진 개수와는 상관없이 클래스는 하나만 존재하기 때문에 자신에게 해당 메서드가 없으면 클래스로 가서 확인할 수 있기 때문이다. 생성자를 만들고 개체를 만들어서 사용할 수 있다. 생성자를 private으로 두면 개체를 못 만들게 할 수도 있다. 정적 메서드에서 비정적 메서드에는 접근이 불가능하다. 비정적 메서드에서 정적 메서드는 접근할 수 있다. 클래스에 속한 메서드가 개체에 속한 멤버(함수/변수)에는 접근이 불가능하다. 클래스 내부에 있기 때문에 접근 범위를 제어할 수 있.. 2023. 1. 11. 이전 1 2 3 다음