컴퓨터/Java
Java언어 프로그래밍을 공부하면 캡슐화 / 정보의 은닉 등의 장점이 있다는 말이 많이 나옵니다. 바로 private키워드를 이용하기 때문입니다. 만약 클래스를 정의하는데 이 클래스의 변숫값을 외부에서 접근하지 못하게 하기 위해서 private키워드를 사용합니다.
public class TestClass{
private int number;
}
public class Test {
public static void main(String[] args) {
TestClass A = new TestClass();
A.number = 10; // error 발생
}
}
위처럼 private 키워드를 사용하면 함수로 객체들 안의 변수를 제어할수 없게 됩니다.
위처럼 객체의 접근을 제한하는 취지는 좋지만, 불가피하게 객체 외부에서 접근을 막은 값을 제어해야 되거나 외부에서 그 값을 보는 것 , 또는 주는 것만을 하고 싶은 경우가 종종 있게 됩니다. 이러한 상황에서 간접적인 형태로 그 값을 제어하는 방법이 바로 메서드의 형태로 구현하는 방법입니다.
class TestClass{
private int number;
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public void Print()
{
System.out.println(number+"의 값");
}
}
public class Test {
public static void main(String[] args) {
TestClass A = new TestClass();
//A.number = 10; // error 발생
A.setNumber(10);
A.Print();
System.out.println(A.getNumber());
}
}
위와 같이 다양한 private으로 선언된 멤버변수들중 특정한 값만 함수의 형태로 외부에서 값을 제어할 수 있게 사용할 수 있습니다.
위와 같이 특정한 멤버변수들만 Get/Set함수를 만들어서 제어할 수 있게 됩니다.
Java - 인터페이스(Interface) (0) | 2021.08.19 |
---|---|
Java - 추상화 클래스 (0) | 2021.08.15 |
Java - JDK,JRE,JVM - 자바를 많이 쓰는 이유 (자바가 C보다 느린이유) (0) | 2021.08.11 |
Java - 클래스 배열 (0) | 2021.08.08 |
Java - Package(패키지) (0) | 2021.08.04 |
91년생 공학엔지니어의 개발일지
TODAY :
YESTER DAY :
TOTAL :
Commnet