OOP(다형성, 캡슐화)

개발새발 해도 개발자·2022년 2월 13일
0

java

목록 보기
6/9

다형성(Polymorphism)

= ex) 운전할 수 있으면 차 종류에 관계없이 운전 가능하다 -> 다형성이 되어있음

마우스 종류가 달라져도 마우스 사용이 가능하다 -> 다형성이 되어있음

내가 쓰는게 ms word 일때 아래한글 사용하기 힘듬 -> 다형성이 되어있지 않음

ex) KS system

KS----->A사, B사, C사 KS의 기능이면 A,B,C사의 똑같은 기능이다(자동차 브레이크)

KS s = new KS(); S.기능 을 사용한다는 의미

--> KS만 알면 A,B,C에서 사용이 가능하다

--------------------------->즉, 동일한 인터페이스를 사용할 수 있도록 한다. 다형성이 되어있다.

•Java Language에서 Method Overloading, Method Overriding, Abstract Method, Abstract Class, Interface등으로 System에 구현할 수 있다.

Overloading

제조사 별로 추가적인 기능은 달라도 공통적인 마우스의 기능, 공통적인 운전 방법은 우리가 알고 있다.

하나의 예로 동일한 method Name이지만 arguments의 Data Type의 종류와 개수에 따라 무수히 많은 Class가 존재한다.

///method overloading
public void class mouse(기능1){
}

public void class mouse(기능1, 기능2){
}

public void class mouse(기능1, ....){
}

Method Overloading

다형성을 지원하는 기술로 동일한 name을 갖고 있는 method에 parameter 선언해 주고, 입력 받는 arguments의 Data Type, 개수 등에 따라 다른 기능을 수행할 수 있게 해준다.

하나의 bean과 class에서 사용하는 기술이다.

Method Overriding

Superclass의 Method의 이름을 Subclass에 복제하여 필요한 내용으로 재 정의 하는 기술

public class A{
	public void charge(){
		System.out.println("학생: 300, 일반인: 500");
	}
}
public class B extends A{
	public void charge(){
		System.out.println("학생: 300");
}


캡슐화(Encapuslation)

= 우리는 information hiding 된 객체이다.

º public과 privite등의 modifier을 통해 정보의 공개 여부를 결정한다. 또한 setter / getter Method를 통해 Information Hiding된 정보에 접근한다.

ex) 친분이 있는 사람에게는 이름, 나이 등의 정보를 알려주지만
친분이 없는 사람에게는 통상적으로 이름, 나이 등을 쉽게 알려주지 않는다.

profile
컴퓨터가 알아서 해주는건 없다. 게으른 개발자가 되자

0개의 댓글

관련 채용 정보