JAVA/JAVA

[JAVA] 정보의 은닉화(캡슐화), Getter와 setter

Anna-Jin 2021. 11. 10. 02:28
728x90

https://mainpower4309.tistory.com/7

 

[자바/JAVA 개발]자바 은닉화(encapsulation): 캡슐화

- 캡슐화 개념 캡슐화는 일반적으로 변수와 클래스를 하나로 묶는 작업이다. 캡슐화의 중요 목적은 중요한 데이터를 보존,보호하기 위해 사용하는 것이다. 즉 캡슐화는 클래스에 담는 내용중

mainpower4309.tistory.com

 

은닉화 (encapsulation): 캡슐화

캡슐화란 일반적으로 변수와 클래스를 하나로 묶는 작업이다. 

캡슐화의 중요 목적은 중요한 데이터를 보존,보호하기 위해 사용하는 것이다. 

 

객체 지향 프로그래밍에서 객체의 데이터는 객체 외부에서 직접적으로 접근하는 것을 막는데, 객체 데이터를 외부에서 읽고 변경하게 되면 객체의 무결성이 깨질 수 있기 때문이다.

 

※무결성: 데이터의 정확성과 일관성을 유지하고 보증하는 것

 

결론적으로, 캡슐화는 클래스에 담는 내용중 중요한 데이터나 기능을 외부에서 접근하지 못하게하기 위해 사용한다고 알아 두면 된다.

 

  • 캡슐화를 하는 방법

멤버 변수(필드) 앞에 접근 제어자 private를 붙여 자기 클래스에서만 접근할 수 있게 만든다.

이로써 각 필드는 다른 곳에서 데이터를 건드릴 수 없게 된다.

 

그리고 나서 멤버 변수에 값을 넣고 꺼내 올 수 있는 메소드를 만들고, 외부에서 메소드를 통해 데이터에 접근하도록 한다. (getter와 setter)

 

 

setter

public void set필드명(자료형 필드명) {
	this.필드명 = 필드명;
}

 

getter

public 자료형 get필드명() {
	return 필드명;
}

 

getter와  setter의 호출은 객체 생성 후 메소드 사용하는 것과 똑같이 사용하면 된다.

 

예시

public class Objcet {

	private String name;
	private int price;
	private int count;


	public string getName() {
		return name; 
	}
	public void setName(string name) { 
		this.name = name; 
	}

	public string getPrice() { 
		return price; 
	}
	public void setPrice(string price) { 
		this.price = price; 
	}

	public string getCount() { 
		return count; 
	}
	public void setCount(string count) { 
		this.name = count; 
	}
	
}
public class ObjectTest {
	Object ob = new Object();
    
    ob.setName("코카콜라");
    ob.setPrice(1000);
    ob.setCount(5);
    
    system.out.println("이름 : " + ob.getName());
    system.out.println("가격 : " + ob.getPrice());
    system.out.println("개수 : " + ob.getCount());
}

 

 

※이클립스에서 Source > Generate Getters and Setters... 를 이용하면 더욱 편하게 getter와 setter를 만들 수 있다.

 

728x90