minghxx.blog
  • 자바의 정석 75~강 패키지, 클래스 패스, import, 제어자, 접근 제어자
    2023년 08월 05일 20시 12분 02초에 업로드 된 글입니다.
    작성자: 민발자
    728x90

    ch 7-12~14 패키지, 클래스 패스

    1. 패키지

    서로 관련된 클래스의 묶음

    클래스는 *.class 클래스 파일, 패키지는 폴더

    클래스는 실제 이름은 패키지를 포함 java.lang.String

    rt.jar 클래스들을 압축한 파일 

     

    2. 패키지 선언

    소스파일의 첫 문장으로 한번 선언

    같은 소스파일의 클래스들은 모두 같은 패키지에 속함

    패키지 선언이 없으면 이름 없는 패키지 default package에 속함

     

    3. 클래스 패스

    클래스 파일의 위치를 알려주는 경로

    환경변수 classpath로 관리

    환경변수에 패키지 루트 등록 필요


    ch 7-15~16 import 문, static import 문

    1. import 문

    컴파일러에게 클래스가 속한 패키지를 알려줌 → 클래스 사용할 때 패키지 이름 생략 가능

    java.lang 패키지의 클래스는 생략가능 String, Object, System, Thread, ..

     

    2. import문 선언

    import 패키지명.클래스명;

    import 패키지명.*;

    컴파일 시에 처리되므로 프로그램의 성능에 영향 없음

    이름이 같은 경우 클래스 앞 패키지명 필요 ex) sql의 Date와 util의 Date

    // java패키지 > util패키지 > 모든 클래스
    import java.util.*; 
    
    // java패키지 > 모든 클래스
    // 패키지는 제외
    import java.*;
    
    //클래스 이름이 같은 경우
    import java.sql.Date;
    import java.util.Date;

     

    3. static import문

    static멤버 사용할 때 클래스 이름 생략 가능

    import static java.lang.Math.random;
    
    System.out.println(random());
    // Math.random() 클래스 이름 생략 가능

    ch 7-17~20 제어자, static, final, abstract

    1. 제어자

    클래스와 클래스멤버에 부가적인 의미 부여

    여러 제어자 같이 사용가능하나 접근제어자는 하나만 가능

    접근 제어자 public, protected, default, private
    그 외 static, final, abstract, native, transient, synchronized, volatile, strictfp

     

    2. 제어자

    제어자 대상 의미
    static 멤버 변수 모든 인스턴스에 공통적으로 사용되는 클래스 변수됨
    클래스 변수는 인스턴스 생성없이 사용 가능
    클래스가 메모리 로딩될 때 생성
    메서드 인스턴스 생성 없이 호출 가능한 메서드 됨
    static 메서드 내에서는 인스턴스 멤버 직접 사용 불가
    final 클래스 변경 불가, 확장 불가 클래스
    디른 클래스의 조상이 될 수 없음
    메서드 변경 불가 메서드, 오버라이딩 불가
    멤버변수
    지역변수
    값 변경 불가인 상수가 됨
    abstract 클래스 클래스 내에 추상 메서드가 선언되어 있음 의미
    인스턴스 생성 불가
    메서드 선언부만 작성, 추상 메서드임을 알림  구현부가 없음

     


    ch 7-21 접근 제어자

    private 같은 클래스 내에서만 접근 가능
    default 같은 패키지 내애서만 접근 가능
    protected 같은 패키지 내, 다른 패키지의 자손클래스에서 접근 가능
    public 접근 제한 없음

    1. 접근 제한자

    한 개만 가능

    728x90
    댓글