1. 캡슐화란 ?
-추상화를 통해 정리된 데이터들과 기능을 하나로 묶어 관리하는 기법
-클래스의 가장 중요한 목적인 데이터의 접근제한을 원칙으로 하여 클래스 외부에서 데이터의 직접 접근을 막고,
대신 데이터를 처리하는 함수들을 클래스 내부에 작성하는 방법
>> 외부에서는 내부가 보이지 않으므로 정보은닉 효과가 발생
private (직접 접근을 막기위해 private라는 접근제한자 이용)
2. 캡슐화 원칙
- 클래스의 멤버 변수에 대한 접근 권한은 private을 원칙으로 한다.
- 클래스의 멤버 변수에 대한 연산처리를 목적으로 하는 함수들을 클래스 내부에 작성한다.
- 멤버 함수는 클래스 밖에서 접근할 수 있도록 public으로 설정한다.
- 클래스의 멤버 변수에 대한 연산처리를 목적으로 하는 함수들을 클래스 내부에 작성한다.
- 멤버 함수는 클래스 밖에서 접근할 수 있도록 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 |