본문 바로가기
  • 개발공부 및 일상적인 내용을 작성하는 블로그 입니다.

JAVA/객체지향5

JAVA - 객체지향 프로그래밍(OOP) - 추상 클래스 추상 클래스 - 추상 클래스는 미완성된 클래스이다. - 미완성된 클래스는 미완성된 메소드인 추상 메소드를 포함하고 있다. - 추상 클래스는 혼자로는 클래스의 역할을 다 못하지만, 새로운 클래스를 작성하는 데 있어 그 바탕이 되는 부모 클래스로서의 중요한 의미를 갖는다. 왜냐하면 클래스를 작성함에 있어서 어느정도 작성된 상태에서 시작할 수 있기 때문이다. - 클래스 앞에 abstract 키워드를 붙인다. abstract class Car { abstract void accelrate(); } - abstract 키워드가 있는 클래스라고 모두 구현해야 하는 것은 아니다. 왜냐하면 단지 공유의 목적으로 abstract class 를 만드는 경우도 있기 때문이다. 추상 클래스의 목적 - 기존의 클래스에서 공통된.. 2022. 1. 23.
JAVA - 객체지향 프로그래밍(OOP) - 인터페이스 * 인터페이스 - 인터페이스는 인터페이스를 구현하는 모든 클래스에 대해 특정한 메소드가 반드시 존재하도록 강제한다. - 인터페이스의 목적은 구현 객체가 같은 동작을 한다는 것을 보장하는 것이다. - 일종의 추상 클래스이다. 하지만 추상 클래스보다 추상화 정도가 높아서 추상 메소드 이외의 일반 메소드나 멤버 변수를 구성원으로 가질 수 없다. 오직 추상 메소드와 상수만 멤버로 가질 수 있으며, 그 외의 요소는 허용하지 않는다. - 인터페이스는 내부에 프로토타입 메소드가 정의된다. - 프로토타입 메소드 : 중괄호와 같은 동작 수행 코드가 작성되지 않은 채 껍데기만 존재하는 메소드. - implements 를 통해 클래스에서 인터페이스의 내용을 구현할 수 있다. - 인터페이스를 구현하게 된 클래스는 인터페이스 .. 2022. 1. 23.
JAVA - 객체지향 프로그래밍(OOP) 특징 - 2 객체지향 프로그래밍의 특징 - 다형성 객체지향 프로그래밍의 특징인 다형성의 경우 다음과 같은 경우에서 나타나는 것을 확인할 수 있다. 1. 상속에서의 다형성(인스턴스 업캐스팅, 메소드 오버라이딩) 2. 인터페이스 구현에서의 다형성 1. 상속에서의 다형성 * 클래스 인스턴스 업캐스팅 부모 클래스의 필드와 메소드를 상속받은 자식 클래스로 객체 인스턴스를 만들 경우, 해당 자식 객체 인스턴스를 부모 클래스 타입으로 정의해줄 수 있다. (반대의 경우는 불가능하다.) Cat c = new Cat(); Animal a = c; // Cat 객체를 Animal 객체로 해석 * 메소드 오버라이딩 상속관계에 있는 클래스들의 경우 부모 클래스에 정의된 메소드를 자식 클래스에서 이름과 파라미터는 같되, 전혀 다른 기능을 수.. 2022. 1. 23.
JAVA - 객체지향 프로그래밍(OOP) 특징 - 1 객체 지향 프로그래밍(OOP) 의 특징 1. 추상화 추상화는 목적과 관련이 없는 부분을 제거하여 필요한 부분만을 표현하기 위한 개념이다. 두 가지 사례를 통해 예시를 들어보자. 1. 지도의 경우 위성지도와 등고선지도 등 여러가지가 있는데, 각 지도마다 목적이 다르다. * 위성 지도 : 그 지형의 정확한 실제 모습을 담기 위한 목적의 지도 * 등고선 지도 : 지형의 높낮이를 표현하기 위한 목적의 지도 등고선 지도를 그릴 때, 목적에 맞지 않는 부분을 제외하고 필요한 부분(지형의 높낮이) 만 표현한다. 2. 강아지, 고양이, 뱀 등 서로 다른 특징을 가지고 있는 동물들을 표현해야 한다고 해보자. 이룰 추상화 하려면 공통되는 특징들은 표현하고, 그렇지 않은 특징들은 제외시킴으로서 추상화가 가능하다. - 강아지.. 2022. 1. 23.