20일차 시작....

조동현·2022년 7월 28일
0

[교육] Java

목록 보기
5/12
post-thumbnail

📌 접근 지정자

  • 접근 지정자
    public : 전체
    protected : 같은 패키지 또는 상속관계
    default : 같은 패키지
    private : 같은 클래스 또는 객체

    클래스 접근 지정자는 default 또는 public 이다.



📌 DTO

  • Data Transfer Object 클래스
    1. 필드의 접근 지정자를 private 로 설정한다.
    2. default 생성자가 있어야 한다.
    3. 필드에 저장할 모든 값을 전달 받는 생성자가 있어야 한다.
    4. 필드에 접근할 수 있는 getter, setter 메소드가 표준에 맞게 작성되어야 한다.


📌 상속 (extends)

  • 상속
    - 형식 : public class 자식클래스 extends 부모클래스
    - 자식 클래스 객체를 만들 때, 부모 클래스 타입의 객체까지 만들어 자식 클래스 타입 객체 참조값 안에 넣는다.

    - 객체 생성 순서
    1. 부모 클래스 타입 객체
    2. 자식 클래스 타입 객체


    - extends 하지 않을 경우
    Object 클래스를 자동으로 상속 받는다.
    Object 클래스 : 모든 클래스의 루트 클래스이다.



📌 다형성 (Polymorphism)

  • 다형성
    상속 관계로 인해 하나의 객체에는 여러개의 타입이 존재하게 된다.
    하위 클래스 객체는 상위 클래스 타입 객체에 넣을 수 있다.
SmartPhone p1 = new SmartPhone();
Phone p2 = p1;
Object p3 = p1;

상위 클래스 객체는 하위 클래스 타입에 넣을 수는 있지만 문제가 발생한다.

// 오류 발생
SmartPhone p1 = new Object();
Phone p2 = p1;
Object p3 = p1;
  • 해결 방법
    상위 클래스 객체를 상위 클래스 타입에 넣으려면 어떻게 할까?
    상위 객체 앞에 cast만 붙여 사용한다.
    주의사항 : 처음에 하위 객체를 선언한 후, 더 하위에 있는 타입에 대입하려면 처음부터 객체가 더 하위에 있는 객체로 만들어졌어야 한다.
// 오류 발생 : Phone 객체로 만든 인스턴스는 하위 클래스 타입에 대입해도 하위 클래스 context를 사용할 수 없다.
Phone p = new Phone();
SmartPhone p3 = (SmartPhone) p;
// 정상 : Phone 타입 객체는 SmartPhone 객체를 대입받았기 때문에 이후 SmartPhone 타입에 대입해도 기능 사용에 오류가 없다.
Phone p1 = new SmartPhone();
SmartPhone p2 = (SmartPhone) p1;


📌 Override

  • Override
    형식
@Override
public void 상위클래스메소드명() {
}

사용 목적 : 상위 클래스의 메소드를 다시 정의하여 사용하기 위함이다.



📌 super

  • super
    형식
public void 클래스명 {
	super();
    // super : 상위 클래스를 의미한다.
    // this : 객체를 의미한다.
}

메소드 : 자식 클래스 객체에서 override한 메소드 대신 부모 클래스의 메소드를 사용하기 위함이다.
생성자 : 자식 클래스 생성자에서 부모 클래스 생성자를 참조할 때 사용한다.



profile
데이터 사이언티스트를 목표로 하는 개발자

0개의 댓글