자바 기초 - 접근제한자

    안녕하세요 

    코로나때문에 뒤숭숭한 나날이 계속되고 있네요 

    하루속히 이사태가 수습되서 마스크를 벗고 돌아다닐수 있었으면 좋겠네요  

    오늘은 자바의 접근제한자에 대해 포스팅 하려고 합니다. 

    자바의 클래스의 대부분은 외부 클래스에서의 이용을 목적으로 설계된 라이브러리클래스 입니다. 

    라이브러리 클래스를 설계시에는 외부 클래스에서 접근할수 있는 멤버와 접근 할 수 없는 멤버로 구분해서 

    필드,생성자,메소드를 설계해야합니다. 

    객체 생성을 막기 위해서 생성자를 호출하지 못하게 하거나 객체의 데이터를 보호하기 위해 

    해당 필드에 접근하지 못하도록 막아야 하고 특정 메소드를 호출 할 수 없도록 제한해야합니다. 

    자바에서는 이런 기능을 구현하기 위해 접근 제한자를 제공합니다. 

    접근제한자는 public,protected,default,private와 같은 네가지의 종류가 있습니다. 

    public 접근 제한자는 단어의 뜻 그대로입니다. 공개한다는 의미를 가지고 있습니다. 

    모든 패키지에서 아무런 제한없이 생성자를 호출 할수 있도록 합니다. 

    생성자가 public 접근 제한을 가진다면 클래스도 public 접근 제한을 가집니다. 

    protected 접근 제한자는 같은 패키지나 또는 자식 클래스에서 사용할수 있는 접근제한자입니다. 

    default 접근 제한과 같이 같은 패키지에 속하는 클래스에서 생성자를 호출 가능하도록 합니다. 


    하지만 다른 패키지에 속한 클래스가 해당 클래스의 자식클래스라면 생성자를 호출 가능합니다. 

    default 접근 제한자는 같은 패키지에 소속된 클래스에서만 사용할 수 있는 접근제한자입니다. 

    생성자를 선언할 때 public 또는 private를 생략했다면 생성자는 default 접근 제한을 가집니다. 

    default 접근 제한자는 같은 패키지에서는 아무런 제한없이 생성자를 호출가능하지만 다른 패키지에서는 생성자를 호출할수 없게 합니다. 

    private 접근 제한자는 외부에 전혀 노출 되지 않도록 설정하는 접근 제한자입니다. 

    동일 패키지이든 다른 패키지이든 상관없이 생성자를 호출하지 못하게 제한합니다. 

    다른 클래스의 외부에서 new 연산자를 사용해도 객체를 만들수 없습니다. 

    클래스의 내부에서만 호출이 가능하고 객체생성이 가능합니다. 

    나열한 순서대로 메소드를 접근할수 있는 제한의 범위가 커집니다. 

    뒤로 갈수록 공개되어지지 않아 접근을 할수 없습니다. 

    클래스를 선언할때 같은 패키지내에서만 사용할 것인지 다른 패키지 에서도 사용할 것인지를 결정해야합니다. 

    클래스에 적용 가능한 접근제한은 public과 default 단 두가지 입니다. 

    기본적으로 접근 제한자의 사용법은 다음을 따릅니다. 

    public class 클래스 {} 

    class 클래스{}   <<< default 접근제한 

    protected 클래스 {} 

    private 클래스 {} 

    위와같이 기본 형식을 가집니다. 

    클래스를 선언시에 공개의 범위나 사용의 범위를 생각해서 잘 선택해서 사용해야 될것입니다. 

    오늘의 포스팅내용은 여기까지입니다. 

    다음에는 더 유익한 정보로 돌아오겠습니다.!! 

    댓글(0)

    Designed by JB FACTORY