레이블이 자바 encapsulation인 게시물을 표시합니다. 모든 게시물 표시
레이블이 자바 encapsulation인 게시물을 표시합니다. 모든 게시물 표시

2016년 7월 22일 금요일

3day / SE / method

http://www.9lessons.info
기본문법

[접근제어자] 리턴타입 메서드명([매개변수]){
기능구현부
[return value]
}
ex)
public void eat(){ <--리턴값이 없을때 void를 명시한다
System.out.println("먹다"); <--기능 구현부
}


method : passing argument (데이터를 전달)
rv.메서드(data) ---------> 메서드(매개변수){ 처리 }
return value (결과값을 호출한 측으로 반환)
rv.메서드() -------call------> 메서드(){ return value}
<-----return-----
메서드 실행 후
특정 value를 반환하기 위해서는 특정 value의 data type을
void 대신 명시해야 한다

Encapsulation 정의
"public interface, private implementation"
객체(or 컴포넌트)를 인터페이스와 구현부로 분리하고
인터페이스는 공개하고 구현부는 감춘다

  • 효과
    1. 인터페이스와 구현부가 분리됨으로 정보 은닉 및 정보 보호가 된다
    외부에서 접근시에는 반드시 인터페이스를 거쳐서 구현부와 통신해야만 한다
    2. 구현부가 업데이트되어도 사용하는 측에서는 영향이 없다
    -> 결합도가 낮아진다
    -> 시스템의 유지보수성이 향상된다
    3. 사용하는 측에서는 구현부를 몰라도 인터페이스만 파악해 사용할 수 있다
    -> 생산성 향상에 기여
  • 객체 단위에서의 Encapsulation 적용은
    외부와 소통할 속성과 기능에는 public 접근 제어자로 명시하고
    내부에서 구현 역할을 하는 속성과 기능에는 private 접근 제어자로 명시한다.
자바의 접근 제어자(access modifier)
public > protected > [default] > private
public : 어디서나 접근 가능
protected : 같은 패키지에서만 접근 가능하나, 상속관계시에는 다른 패키지에서도 접근 가능
[default] : 같은 패키지에서만 접근 가능
private : 오로지 자신의 클래스 내에서만 접근 가능 외부 접근 차단
setter / getter method
private 으로 선언된 변수에 대응하는
setter 와 getter method는 외부에서 정보를 할당받는 setter 계열 메서드와
외부로 정보를 반환하는 getter 계열 메서드로 구성된다.
ex)
public class Person{
//setter
public void setId(String i){
    id = i;
}
//getter
public String getId(){
    return id;
    }
}