Java 은닉성, 접근제어자(access modifier),게터세터(getter, setter), 자바빈즈

NasK!m_311·2022년 8월 22일
0

Java

목록 보기
22/39
post-thumbnail

💡 은닉성이란?

  • 멤버변수나 메소드가 객체에 노출되지 않도록 설정하는 기법.
  • 객체를 사용하는 측의 실수로 인한 기능의 오작동을 방지하기 위해, 클래스의 일부를 숨기는 처리를 말한다.

💡 적용하는 방법

  • 변수명 이나 메소드명 앞에 "접근제어자"를 지정한다.

💡 접근제어자

1. public 

	- 모든 곳에서 접근 가능하다. 
    - 일반적으로 모든 '메소드' 앞에 명시한다.
    - 객체 생성 가능하다.(서로 다른 소스코드에 정의된 클래스끼리도 가능.)

-------------------------------------------------------------------------------
2. private

	- 클래스 안에서 사용가능하고, 객체를 통해 접근할 수 없다.
    - 일반적으로 모든 '멤버변수' 앞에 명시한다.
    - private으로 설정된 변수는 다른 클래스에서 접근할 수 없기 때문에,
    	public으로 설정된 메소드(getter, setter)를 통해서 값을 설정하거나 저장된 값을 가져와야한다.
	- 클래스에 적용 x.

-------------------------------------------------------------------------------
3. protected

	- 현재 클래스 내의 다른 자원이나, 같은 패키지 안에 존재하는 클래스, 
    	하위 클래스(자식클래스)에서 접근 가능하다.
    - 잘 사용하지 않는다.
	- 클래스에 적용 x.
    
-------------------------------------------------------------------------------
4. default

	- 접근제어자를 명시하지 않은 경우, 
    	현재 클래스 내의 다른 자원이나 동일 패키지 내의 다른 클래스에서 접근 가능하다.
    - 잘 사용하지 않는다.
    - 동일한 소스코드에 정의된 클래스끼리만 객체로 생성 가능하다.

💡 getter, setter

1. 멤버변수가 은닉된 형태로 선언된 경우, 
	프로그램의 가장 근본적인 목적인 데이터에 접근하는 방법이 사라지므로,
    	메소드를 통하여 간접적으로 접근하는 방법이 마련되어야 한다.

-------------------------------------------------------------------------------
2. getter, setter 는 은닉된 멤버변수에 간접적으로 접근하기 위하여 정의된 메소드들을 의미하는 용어이다.

	getter : 은닉된 멤버변수의 값을 리턴하기 위한 메소드.
    
    setter : 파라미터(매개변수)로 전달된 값을 멤버변수에 복사하기 위한 메소드.
    
-------------------------------------------------------------------------------
3. 메소드 작성 예

	멤버변수 이름				getter					setter
    String userName			String getUserName()	void setUserName(String Param)
    int userAge				int getUserAge()		void setUserAge(int Param)
    
    -> "get", "set" 접두사 뒤에 변수이름을 첫 글자가 대문자인 형태로 명시.
    -> getter는 연결된 멤버변수의 데이터 타입을 '리턴형'으로 명시.
    -> setter는 연결된 멤버변수의 데이터 타입을 '파라미터형'으로 명시.

💡 클래스의 분리

  • 하나의 소스코드에서 프로그램의 모든 기능을 구현하게 되면 유지보수에 비효율적이므로, 기능단위로 소스코드를 분리해야 한다.
  • 소스코드가 분리된 클래스끼리는 public이 명시되어야지만, 서로 객체 셍성이 가능하다.
  • 일반적으로 클래스 정의에는 public 접근 제어자만 사용한다.
  • 하나의 소스코드에는 하나의 public 클래스만 존재할 수 있다.

💡 자바 빈즈(Java Beans)

1. 자바 언어에서 사용하는 복합적 데이터 표현의 최소 단위로서,
	재사용 가능한 컴포넌트(구성요소)를 생성할 수 있다.

2. 자바 빈즈 클래스로서 작동하기 위해서, 
	객체 클래스는 명명법, 생성법 그리고 행동에 관련된 일련의 관례를 따라야만 한다.
   이러한 관례는 개발도구에서 자바 빈즈와의 연결을 통해 
    클래스의 사용과 재사용, 그리고 클래스의 재배치를 가능하게 한다.
    
    -> 지켜야할 관례
    
    	1) 클래스는 생성자를 가지고 있어야 한다.
        2) 클래스의 속성들은 get, set 메소드를 통해 접근할 수 있어야 한다.
profile
메리아빠, 먹다가 죽어도 되는 개발자.(살뺴자....)

0개의 댓글