객체지향프로그래밍(Object Oriented Programming)
- 부품에 해당하는 객체들을 언저 만들고, 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법을 객체지향프로그래밍이라고 한다. 이때 사용되는 언어가 객체지향언어이다.
- java는 객체지향언어(+함수형언어)이다. (객체지향프로그래밍+함수적프로그래밍)
- 객체지향언어가 가져야할 기능 3가지: 캡슐화, 상속, 다형성
- 캡슐화
- 접근제어자를 사용하여, 외부에서 직접 접근 못하도록 한다. → 외부에는 불필요한(내부적으로만 사용되는) 부분을 감추어, 외부로부터 데이터를 보호한다
- 상속: 기존의 클래스로 새로운 클래스를 작성
- class 자식클래스 extends 부모클래스 { }
- 자손은 조상의 모든 멤버를 상속받는다. (생성자, 초기화블럭 제외)
- 오버라이딩(덮어쓰기): 상속받은 조상의 메소드의 내용을 변경하는 것
- 오버라이딩의 조건
- 선언부 변경불가(선언부는 일치해야함), 구현부(내용)만 변경가능
- 예외를 조상의 메소드보다 많이 선언 불가능
- 오버라이딩의 조건
- 다형성: 여러가지 형태를 가질 수 있다
- 조상타입 참조변수로 자손타입객체를 참조
- Tv t = new SmartTv(); //참조변수(t)와 인스턴스 타입이 불일치(Tv≠SmartTv) →다형성
- 조상타입 참조변수로 자손타입객체를 참조
- 참조변수가 조상타입(Tv)일때와 자손타입(SmartTv)일때의 차이?
- 참조변수로 사용할수있는 멤버의 개수가 달라진다.
- ex) SmarTv에는 5개 멤버(기능)가 있지만, Tv타입참조변수 t는 3개의 멤버만 사용 가능하다
- 자손타입 참조변수로 조상타입의 객체를 가리킬수없다
Java 필수 기초 지식 -클래스, 생성자, 필드, 메소드 (tistory.com)
Java 필수 기초 지식 -접근제어자 (tistory.com)
728x90
반응형
'Java Tutorial' 카테고리의 다른 글
[Java] 람다식 (0) | 2023.03.14 |
---|---|
[Java] Set컬렉션 (0) | 2023.02.19 |
[Java] List컬렉션 (0) | 2023.02.18 |
[Java] 컬렉션 프레임워크 (Collection Framework) (0) | 2023.02.16 |
[Java] 제네릭스 (Generics) (0) | 2023.02.16 |