JAVA - 은닉성

박종휘·2022년 10월 6일
0

JAVA - 국비

목록 보기
14/29
post-thumbnail

1. 은닉성

1-1. 은닉성이란?

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

1-2. 접근한정자

  • 변수 이름이나 메서드 이름 앞에 "접근 한정자"를 지정한다.

    		접근 한정자			설명
      		public				모든 곳에서 접근 가능하다.
              					일반적으로 모든 메서드 앞에 명시한다.
            
            private				클래스 안에서 사용가능하고, 객체를 통해서 접근할 수 없다.
            					일반적으로 모든 멤버변수 앞에 명시한다.
                              
           	protected			현재 클래스 내의 다른 자원이나, 같은 패키지 안에 존재하는 클래스와 하위 클래스에서 접근가능하다.
              					잘 사용하지 않는다.
           	
            default				접근 한정자를 명시하지 않은 경우, 현재 클래스 내의 다른 자원이나 동일 패키지 내의 다른 클래스에서 접근 가능하다.
              					잘 사용하지 않는다.

class Student {
	public String name = "자바학생";
    private int weight = 100;
}

public class Main01 {
	public static void main(String[] args) {
    	Student std = new Student();
        
        // public 이므로 접근 가능
        System.out.println(std.name);
        
        // private 이므로 접근 불가능
        // System.out.println(std.weight); -> 에러남
    }
}
result

자바학생

1-3. 멤버변수의 은닉 처리

  • 거의 대부분의 멤버변수는 은닉처리를 기본으로 한다.
class StudentJava {
	// 은닉된 멤버변수 -> 현재 블록안에서만 접근 가능함
    private String name;
    private int age;
}

public class Main02 {
	public static void main(String[] args) {
    
    }
}

1-4. getter, setter

  • 멤버변수가 은닉된 형태로 선언된 경우 프로그램의 가장 근본적이 목적인 데이터에 접근하는 방법이 사라진다.
  • 메서드를 통하여 간접적으로 접근하는 방법이 마련되어야 한다.
  • getter, setter는 은닉된 멤버변수에 간접적으로 접근하기 위하여 정의된 메서드들을 의미하는 용어이다.

Getter → 은닉된 멤버변수의 값을 리턴하기 위한 메서드
Setter → 파라미터로 전달된 값을 멤버변수에 복사하기 위한 메서드

  • 메서드 작성 예

    		멤버변수 이름			getter						setter
      		String userName			String getUserName()		void setUserName(String userName)
            int userAge				int getUserAge()			void setUserAge(int userAge)
  • 'get', 'set' 접두사 뒤에 변수 이름을 첫 글자가 대문자인 형태로 명시
  • getter는 연결된 멤버변수의 데이터 타입을 리턴형으로 명시
  • setter는 연결된 멤버변수의 데이터 타입을 파라미터 형으로 명시
profile
개린이의 개발 고수되기 작전!

0개의 댓글