본문 바로가기
Java/Java 학원 복습

자바 접근 권한 제어자, Casting -학원

by code2772 2022. 10. 3.

[ 목차 ]

    728x90
    반응형

    # 접근 권한 제어자(접근자)

    주로 클래스의 멤버(변수, 메서드)에 접근을 제어하기 위해 사용한다.

    public : 모든 곳에서 접근 가능, 대표 클래스를 의미할 때 사용

    protected : 다른 패키지에서 접근 불가, 자식은 허용

    default : 다른 패키지에서 접근 불가

    ( 별도로 명시하지 않고 접근제어자 생략시 자동으로 default가 됨)

    private : 다른 클래스에서 접근 불가, 메소그로만 접근하자!

    (getter, setter)

    //alt shift s -> r 접근 권한 제어자 설정하기

    # Casting

    up casting : 자식 값을 부모 타입으로 형변환

    down casting : 이미 up casting된 값을 다시 자식 타입으로 형변환

    ※ 부모 값을 자식 타입으로 형변환 시 오류

    ※ 자식클래스 타입의 객체는 부모클래스 타입도 동시에 갖는다.

    Casting을 사용하는 이유

    부모타입인 하나의 저장공간에 여러 자식타입의 참조값을 Up Casting하여

    저장할 수 있다. (참조변수의 다형성)

    만약 하나의 기능을하는 메소드를 만들때 매개변수로 여러 자식타입을 받아야

    한다고 가정해보자 Casting이 없었다면 자식타입을 매개변수로 받는 메소드를

    타입별로 각각 만들어야한다.

    (자식끼리는 타입이 다르기 때문)

    Casting을 활용하면 부모타입의 매개변수를 가진 하나의 메소드만 만들면 된다.

    (부모타입의 참조변수로 모든 자식타입을 저장할 수 있기 때문)

    **주의사항**

    1. Up Casting으로 자식 참조값을 저장했다면 자식클래스에

    Override(재정의)한 기능이 실행된다.

    2. Up Casting으로 자식 참조값을 저장했다면 자식클래스에 새로 구현한

    기능들은 사용할 수 없다.

    이 경우 Down Casting을 통해서 복구하고 사용한다.

    다형성

    하나의 것이 여러 가지 형태를 가질 수 있는 성질

    1. 오버로딩

    2. 오버 라이딩

    3. 참조변수의 다형성(매개변수의 다형성)

    조상클래스 타입의 참조변수로 자손클래스 객체를 가리키는 것을

    허용한다.

    객체 간 타입 비교

    instanceof

    dog instanceof Animal -> 조건식(결과가 참 또는 거짓)

    -dog 가 Animal 타입이면 true

    -dog 가 Animal 타입이 아니면 false

    반응형