숙제 : 자바와 스프링부트 ★
1) 객체 지향 언어
2) 단순성
3) 이식성
4) 멀티 스레드 (Multi-Thread)
5) 메모리 자동 정리
1. 캡슐화 / Encapsulation
1) 기능과 관련된 데이터를 하나의 클래스로 묶어 사용하여 정보를 은닉한다.
2) 접근 제한자 (Access Modifier)
public : 모든 패키지, 클래스에 접근 가능
protected : 같은 패키지 안에서 접근 가능, 다른 패키지라도 상속받은 자식 클래스라면 접근 가능
default : 같은 패키지 내의 객체에서 인스턴스를 생성하여 접근 가능
private : 같은 클래스 내에서만 접근 가능, 외부 접근 불가
2. 상속 / Inheritance
1) 부모 역할을 하는 클래스가 자식 역할을 하는 클래스에게 클래스 멤버와 메서드를 물려주는 것
2) 클래스를 재사용하기 때문에, 중복을 줄여주고 수정을 최소화한다.
3) 중복되는 필드가 생기기 때문에 다중 상속을 허용하지 않고, extends 뒤에 하나의 부모클래스만 허용한다.
4) 앞에 final 키워드를 붙이고 클래스명을 단 경우, 다른 클래스가 상속이 불가하다.
3. 추상화 / Abstraction
1) 객체에서 공통된 속성의 집합
2) 추상 메서드(abstract method)란,
다형성을 위해 메서드의 선언은 통일되어야 하지만 구현하는 내용은 자식마다 달라야 할 때,
부모 클래스의 메서드는 비워두고 자식 클래스에서 오버라이딩하여 구현하는데
메서드의 선언부만 작성하고 구현부는 남겨둔 미완성 메서드를 추상 메서드라고 한다.
4. 다형성 / Polymorphism
1) 하나의 타입으로 다양한 객체를 사용하는 것
2) 오버라이딩 @Override
상속받은 메서드를 변경해서 다시 구현하는 것
부모클래스와 메소드 이름, 반환타입, 매개변수와 동일해야 한다.
3) 오버로딩
한 클래스 내에서 같은 이름의 메소드를 여러 개 정의하는 것
같은 메소드 이름, 다른 매개변수 선언이어야 사용가능
(작성예정)
🍞🍞🍞