【YouTube】아다치켄 Java 프로그래밍 입문 강좌 -오브젝트 지향을 이해한다-【정리】
객체 지향
원래 왜 객체 지향이 중요한가?
- 인기있는 프로젝트 언어는 대부분 객체 지향의 개념을 도입하고 있기 때문에
- 큰 프로젝트나 여러 사람이 프로젝트를 움직일 때 매우 편리하기 때문에
클래스와 인스턴스
개체 = 모든 것
e.g.) 내 차, 오노 선생님의 넥타이, 신쇼 츠요시의 치아, 사과, 변기
클래스 = 물건의 카테고리
인스턴스 = 클래스 아래에 들어가는 것
e.g.) 클래스 = 개 인스턴스 = 치코 짱 (오노 선생님의 개), 시라도 지로, 파트라 쉬
e.g.) 클래스 = 사람 인스턴스 = 오노 마사히로, 버락 오바마, 바보의 사카타
캡슐화
액세스 한정자
-
public
외부에서도 참조 가능-
protected
동일 클래스, 동일 패키지, 서브 클래스로부터의 참조 가능-
default
같은 클래스, 같은 패키지로부터의 참조 가능-
private
같은 클래스로부터의 참조 가능즉 재기록되고 싶지 않은 정도에 의해 액세스 수식자를 구분하는 것이 필요.
필요한 정보를 은폐해, 메소드를 통해서 밖에 정보에 액세스 시키는 것을 캡슐화라고 합니다.
클래스 상속
클래스의 계층 구조
슈퍼 클래스
e.g.)
Animal
서브 클래스
e.g.)
1. Dog
2. Cat
인스턴스
e.g.)
1-1. 치코짱
1-2. 시라도 지로
1-3. 파트라쉬
2-1. 미미
2-2. 히코냥
2-3. 미야로메
class Dog
와 class Cat
의 슈퍼 클래스로서 class Animal
를 선언하고 싶을 때는 extends
를 사용해,class Animal {
~~
}
class Dog extends Animal {
~~
}
class Cat extends Animal {
~~
}
그러면 각 클래스가 연결됩니다.
왜 이러한 계층 구조가 필요한가?
class Animal
에서는 다음과 같은 특징이 있다고 합니다.- 눈이 2개
- 꼬리가 하나
- 다리가 4개
이러한 정보는 공통항으로서 서브 클래스에도 적응할 수가 있습니다.
그러나
class Dog
에서는 class Cat
에 없는 다음의 특징을 추가한다고 합니다.- 사람 그리운
- 한번 울린다.
반대로
class Cat
에는 class Dog
에 없는 다음 특징을 추가합니다.- 높은 점프
- 냐와 소리
계층 구조를 갖게 함으로써 이러한 공통 항목으로 하는 것과 독자적인 항목으로 하는 것으로 구분하여 취급하기 쉽게 할 수 있게 됩니다.
폴리모피즘과 재정의
폴리모피즘이란 일정한 형태를 준비해, 그 형태안에 들어가는 인수에 의해 다른 동작을 구현하는 방법입니다.
위의 예를 사용하면,
animal.java
class Animal {
~~
public abstract void poke (); //pokeの中身はabstractをつけることで空になっている
~~
}
dog.java
class Dog {
~~
@Override //abstractをつけたスーパークラスの抽象メソッドをこちらのサブクラスで実装
public void poke (){
makeSound(); //ワンッと鳴く
say(); //何かしらメッセージを入れる
}
}
요약
이상, 이번에는 게이오 기학 대학의 오노 마사히로 전 조교수에 의한 강의 「아다치 연 세미나」를, YouTube를 참조하면서 정리했습니다.
Reference
이 문제에 관하여(【YouTube】아다치켄 Java 프로그래밍 입문 강좌 -오브젝트 지향을 이해한다-【정리】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hotoke6/items/079e3add872a5e9237de텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)