적용하는 방법
- 변수의 이름이나 메서드 이름 앞에 "접근 한정자"를 지정한다.
종류
- public
- 모든 곳에서 접근 가능하다.
- 일반적으로 모든 메서드 앞에 명시한다.
- private
- 클래스 안에서 사용가능하고, 객체를 통해 접근할 수 없다.
- 일반적으로 모든 멤버변수 앞에 명시한다.
- protected
- 현재 클래스 내의 다른 자원이나, 같은 패키지 안에 존재하는 클래스와 하위 클래스에서 접근 가능하다.
잘 사용하지 않는다.- default
- 접근 한정자를 명시하지 않은 경우. 현재 클래스 내의 다른 자원 이나 동일 패키지 내의 다른 클래스에서 접근 가능하다.
잘 사용하지 않는다.
getter , setter
getter -> 은닉된 멤버 변수의 값을 리턴하기 위한 메서드
setter -> 파라미터로 전달된 값을 멤버변수에 복사하기 위한 메서드
- 멤버변수가 은닉된 형태로 선언된 경우 프로그램의 가장 근본적인 목적인 데이터에 접근하는 방법이 사라지므로,
메서드를 통하여 간접적으로 접근하는 방법이 마련되어야 한다.- getter, setter는 은닉된 멤버변수에 간접적으로 접근하기 위하여 정의된 메서드들을 의미하는 용어이다.
/*------ getter -----*/ private int age; public int getAge(){ return this.age; }
/*------ setter -----*/ private int age; public void setAge(int age){ this.age = age; }
클래스의 접근 한정자
public
- 객체 생성 가능하다.
- 서로 다른 소스코드에 정의된 클래스끼리도 객체 생성이 가능하다.
private
- 클래스에 적용할 수 없다.
protected
- 클래스에 적용할 수 없다.
default
- 동일할 소스코드에 정의된 클래스끼리만 객체로 생성 가능하다.
(하나의 .java 파일에 여러개의 클래스 객체 생성 가능)
클래스의 분리
- 하나의 소스코드에서 프로그램의 모든 기능을 구현하게 되면 유지보수에 비효율적 이므로, 기능단위로 소스코드를 분리해야 한다.
- 소스코드가 분리된 클래스끼리는 public이 명시되어야만 서로 객체 생성이 가능하다.
- 일반적으로 클래스 정의에는 public 접근 한정자만 사용한다.
- 하나의 소스코드에는 하나의 public 클래스만 존재할 수 있다.
Java Beans
- 자바 언어에서 사용하는 복합적 데이터 표현의 최소 단위로서, 재사용 가능한 컴포넌트(구성요소)를 생성할 수 있다.
- 자바 빈즈 클래스로서 작동하기 위해서, 객체 클래스는 명명법, 생성법 그리고 행동에 관련된 일련의 관례를 따라야만 한다.
이러한 관례는 개발도구에서 자바 빈즈와의 연결을 통해 클래스의 사용과 재사용 그래고 클래스의 재배치를 가능하게 한다.- 지켜야 할 관례 ↓
- 클래스는 생성자를 가지고 있어야한다.
- 클래스의 속성들은 get, set 메서드를 통해 접근할 수 있어야 한다.