Published 2022. 10. 26. 16:20

1. 캡슐화란 ? 

-추상화를 통해 정리된 데이터들과 기능을 하나로 묶어 관리하는 기법
-클래스의 가장 중요한 목적인 데이터의 접근제한을 원칙으로 하여 클래스 외부에서 데이터의 직접 접근을 막고,
  대신 데이터를 처리하는 함수들을 클래스 내부에 작성하는 방법

>> 외부에서는 내부가 보이지 않으므로 정보은닉 효과가 발생
     private (직접 접근을 막기위해 private라는 접근제한자 이용)
 
 
 

2. 캡슐화 원칙

 
- 클래스의 멤버 변수에 대한 접근 권한은 private을 원칙으로 한다.
- 클래스의 멤버 변수에 대한 연산처리를 목적으로 하는 함수들을 클래스 내부에 작성한다.
- 멤버 함수는 클래스 밖에서 접근할 수 있도록 public으로 설정한다.
 
1) 
 
 1.필드부
      필드 == 멤버변수 == 인스턴스변수
     
     [표현법]
       접근제한자 [예약어] 자료형 변수명;
    
    private String name;
    private int age;
    private double height;//정보은닉 private로 쓰는것을 권장
    private int korScore;//private은 현재 클래스 내에서만 접근 가능
    private int mathScore;
   

   
    2.생성자부
         객체를 생성하기 위한 일종의 메소드
       
       [표현법]
       접근제한자 클래스명() {
        }
       
   
     3.메소드부
      기능을 구현하는 부분
      
       [표현법]
      접근제한자 [예약어] 반환형 메소드명([매개변수]) {
      }
   
 
 

  2) setter /getter 메소드

   
1.setter 메소드  : 데이터는 외부에서 접근하지않도록 막고, 메소드 공개 외부에서 메소드를 통해
                           데이터에 접근하도록 유도
                           해당 필드에 대입시키고자 하는 값 전달받아 해당 필드에 대입시켜주는 기능의 메소드
 
 
    - setter메소드명은 setXXXX으로 낙타 표기법을 지킨채로 지어주기 ex)setName, setAge...
    - setter메소드는  void와 함께 쓰고 매개변수 필요, 매개변수는 필드랑 똑같이, 반환시켜주는 코드 작성
   
public void setName(String name) {
        //name = name; //매개변수name = 매개변수name;
       
        //필드 name = 매개변수 name; 원함
        this.name = name; //this에는 해당 객체의 주소값이 담겨있음
       
    }
    public void setAge(int age) {
        this.age = age;
       
    }
    public void setHeight(double height) {
        this.height = height;
       
    }
    public void setKorScore(int korScore) {
        this.korScore = korScore;
    }
    public void setMathScore(int mathScore) {
        this.mathScore = mathScore;
    }​
   
   
2. getter메소드 : 외부에서 객체의 데이터를 읽을 수 있도록 필드값을 가공후 외부로 전달
                           해당 필드에 담긴 값을 반환해주는 역할을 수행
                            getter메소드는 매개변수없음 , 반환형의 자료형은 필드의 자료형과 똑같이 씀,return 필드
   
 public String getName() {
        return name; //결과값을 반환
    }
    public int getAge() {
        return age;
       
    }
    public double getHeight() {
        return height;
       
    }
    public int getKorScore() {
        return korScore;
       
    }
    public int getMathScore() {
        return mathScore;
    }
}​

 

'JAVA' 카테고리의 다른 글

6_4. 객체 _필드  (0) 2022.10.26
6_3. 객체 _클래스 선언부  (0) 2022.10.26
6_1. 객체란  (0) 2022.10.26
5_2. 배열의 복사(ArrayCopy)  (0) 2022.10.25
5. 배열 Array  (0) 2022.10.24
복사했습니다!