객체지향프로그래밍(Object Oriented Programing, OOP)
프로그래밍에서 필요한 데이터를 추상화시켜 상태(변수)와 행위(매소드)를 가진 객체를 만들고,
그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법
장점
코드재사용이 용이: 남이 만든 클래스를 가져와서 이용할 수 있고, 상속을 통해 확장해서 사용할 수 있음.
유지보수가 쉬움: 절차 지향 프로그래밍에서는 코드를 수정해야할 때 일일이 찾아 수정해야 한다.
객체지향에서는 수정해야 할 부분이 클래스 내부에 맴버 변수 혹은 메서드로 있기 때문에 해당 부분만 수정하면 됨.
대형프로젝트에 적합: 클래스 단위로 모둘화히켜서 개발할 수 있으므로 대형프로젝트에서 여러명,
여러회사에서 개발이 필요할 시 업무 분담하기 쉽다.
단점
처리속도가 느리다.
객체가 많으면 용량이 커질 수 있다.
설계 시 시간과 노력이 필요하다.
주요 키워드
1. 클래스 + 인스턴스(객체)
2. 추상화
3. 캡슐화
4. 상속
5. 다형성
1. 클래스와 인스턴스(객체)
클래스: 어떤 문제 해결을 위한 데이터를 만들기 위해 추상화를 거쳐, 집단에 속하는 속성(attribute)와 행위(behavior)를 변수와 메소드로 정의한 것.
인스턴스(객체): 클래스에서 정의한 것을 토대로 실제 메모리상에 할당된 것. 실제 프로그램에서 사용되는 데이터.
2. 추상화
불필요한 정보는 숨기고 중요한 정보들만을 표현. 공통의 속성이나 기능을 묶어 이름을 붙이는 것.
3. 캡슐화
프로그램 코드에서 변수와 함수를 재활용하기에는 분산되어 있어 재사용이 어렵다.
캡슐화를 통해 관련된 기능을 한곳으로 모으고 분류하면 재활용이 원활해진다.
객체지향 프로그래밍에서 기능과 특성의 모음을 '클래스'라는 '캡슐'에 분류해서 넣는 것이 캡슐화이다.
4. 상속
부모클래스의 속성과 기능을 그대로 이어받아 사용할 수 있게하고 기능의 일부분을 변경해야 할 경우 상속받은 자식클래스에서 해당 기능만 다시
정의하여 사용할 수 있게 하는 것.
5. 다형성
하나의 변수명, 함수명 등이 상황에 따라 다른 의미로 해석될 수 있는 것.
오버라이딩, 오버로딩.
'JAVA' 카테고리의 다른 글
JDBC에서 DB전체 테이블명 가져오기 (0) | 2019.07.10 |
---|---|
중첩클래스(Nested Class, Mehod Local, Anonymous, Inner Class) (0) | 2019.05.09 |