객체지향
OOP(Object-Oriented-Programming)
1. 상속
2. 다형성
3. 캡슐화(정보은닉,접근제어지정자)
4. 추상화
-----------------------------------------------------------------------------------------------------------------------------------
1. 상속
두개의 클래스를 상위클래스와 하위클래스로 나뉘어 상위클래스(부모클래스)의 있는 정보를 하위클래스(자식클래스)와 공유하는 것을 말한다.
자바에서의 상속은 상속받을 클래스명 옆에 "extends"를 붙여주고 상위클래스(부모클래스)를 적어주면 된다.
2. 다형성
하나의 객체가 여러 가지 형태를 사질 수 있는 성질을 의미한다.
자바에서의 다형성은 한 타입의 참조변수를 통해 여러 타입의 객체를 참조할 수 있도록 만든 것을 의미한다.
타입변환을 위한 3가지 조건
1.서로 상속관계에 있는 상위 클래스 - 하위 클래스 사이에만 타입 변환이 가능 (★중요)
2.업캐스팅(하위클래스에서 상위클래스로의 타입 변환)은 형변환 연산자(괄호)를 생략할 수 있다.
3.다운캐스팅(상위클래스에서 하위클래스로 타입 변환)은 형변환 연산자를 반드시 명시 해야한다.
"instanceof" 연산자를 통해서 캐스팅이 가능한지 여부를 boolean타입으로 확인할 수 있습니다.
프로젝트의 규모가 커지고 클래스가 많아지면 캐스팅가능여부를 확인하기 어렵기 때문에
instanceof연산자를 활용해야 합니다.
-참조변수 instanceof 변환할타입
주의사항
자식클래스타입의 인스턴스 참조변수를 상위클래스타입으로 변경하는건 가능하지만,
상위클래스타입의 인스턴스참조변수를 자식클래스타입으로 변경하는건 불가능하다고한다.
3. 캡슐화(정보은닉,접근제어지정자)
캡슐화는 관련된 클래스안의 속성값과 기능들 데이터들을 외부로부터 보호하는 것이다.
접근제어자
private : 동일클래스에 접근가능
default : 동일패키지 내에서만 접근가능
protected : 동일패키지 + 다른패키지 하위클래스 접근가능
public : 전부 접근가능
4. 추상화
자바에서는 주로 추상클래스와 인터페이스를 사용해서 추상화를 구현한다.
abstract 제어자를 통해서 추상화를 구현할 수 있다.
ex)abstract class test{}
어떤 클래스에 추상 메서드가 포함되어있는 경우 해당클래스는 자동으로 추상 클래스가 된다.
추상 메서드는 구체화되지않은 "미완성 메서드"이기 때문에 상속받아서 메서드를 오버라이딩하여야 한다.
그렇기 때문에 제대로 구현되기 전까지 객체 생성이 불가함.
'개발 > Java' 카테고리의 다른 글
길이반환해주는 메서드 정리(length(), length, size()) (0) | 2022.09.23 |
---|---|
자바 final (0) | 2022.09.07 |
메서드 "오버라이딩"과 "오버로딩" (0) | 2022.09.06 |
클래스, 메서드, 필드, 생성자 기본개념 and (this,this(),super,super()) (0) | 2022.09.05 |
자바객체 메모리 기본개념 (0) | 2022.09.05 |