3 Concept of "OOP"(Object-Oriented Program)

1. Encapsulation

-캡슐화. 은닉화.
 적절한 접근 지정자 설정과 'method내에서의 적절한 유효성검사'로 구현할 수 있다.

*Access Modifier(접근 지정자) : private < (default) < protected < public
형식 상으로는 class 앞의 접근 지정자는 default, public이 가능하고,
data와 method 앞에는 4가지가 모두 가능하다.
그러나 캡슐화를 구현하기 위해서는 아래의 규칙을 따르는 것이 좋다.

data : 가능한한 항상 private으로 설정
method : public, protected, private, (default)

  method를 public으로 지정하되, 적절한 setter/ getter method를 제공함으로써 캡슐화를 구현힌다. 여기서 setter와 getter라 하는 것은 캡슐화가 구현된 class 외부에서 사용자가 값을 넣어 method를 사용하려 할 때, method 내에 사용자가 올바른 값을 handling할 수 있도록 유도해주는 구문이 있는 것이다. 이를 "유효성 검사 message" 라고 하고, 간단하게는 if 절로 입력받는 매개변수 값에 대한 조건문을 구성하여 값이 틀릴 경우, 알려주고 다시 고치도록 유도하는 것이다. 아래에 예시 코드를 살펴보자.

class MyProfile{
public static void main(){
MyDate birthday=new MyDate();
birthday.year=-2000;
}
}

public class MyDate{
private int year=-1985;
private int month=12;
private int day=25;

public void setYear(int newYear){
if(newYear>0){
year=newYear;
}else{
System.out.println("0보다 큰 값만 들어올 수 있습니다.");
}
}
}







2. Inheritance





3. Polymorphism



댓글