oop란? 자바에서 OOP=Object Oriented Programming(객체 지향적 프로그래밍)을 말한다. ▷캡슐화
캡슐화(Encapsulation)란 객체(내부)를 캡슐(외부)로 감싸 그 내부를 보호하고 이를 볼수 없게 하는것을 뜻한다. 왜 이런 번거로운 일을 해야하는가? 그 이유는 정보 은닉화(information hiding)때문이다.
자바에서는 객체는 메소드와 필드로 구성되서, 클래스라는 캡슐로 메소드.필드의 직접적인 접근을 막고, 메소드의 구현내용도 알수 없다.
다만,일부 메소드와 필드는 객체 외부와의 인터페이스를 위해 노출한다.
예를 들어,객체를 모니터로 보았을때, 모니터는 그 내부를 캡슐화하고 on/off버튼, 밝기나 위치조절 버튼을 노출해 두고 있다.
▷상속
상속(Inheritance)이란,상위 개체의 속성이 하위 개체에 물려져서, 하위 개체가 상위 개체의 속성을 모두 가지고 있음을 의미한다. 이때, 상속되는 상위 개체를 자바에서는 슈퍼 클래스라 하며, 상속받는 하위개체를 서브 클래스라 한다. 상속의 역할은 이미 만들어진 클래스와 필드,메소드를 내용 그대로 물려받게 함으로써 자바 코드의 중복작성을 방지하여, 프로그램의 크기와 코드작성에 드는 시간,비용을 절감할수 있게 된다. ▷다형성
다형성(Polymorphism)이란 같은 이름의 함수 호출에 대하여 각 객체에 따라 다른 동작을 할수 있도록 구성하는 것을 말한다. 다형성의 예를 실생활에서 찾아보면, 약국에서 파는 약은 두통약,감기약등은 모두 같은 '약'이지만 그 효능은 모두 다르다. 여기서 '약'을 하나의 클래스로 보고 두통약,감기약을 객체로, 효능을 메소드로 가정하면, 두통약,감기약은 '약'클래스의 속성을 상속받았으며, 각 약들의 효능 메소드는 서로가 다르다.
다형성은 오버로딩,오버라이딩과 밀접한 관계가 있다. |