프로그램을 개발하는 기법으로 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법
절차지향: 작업의 흐름에 따라 ↔ 객체지향: 객체의 관계에 따라추상화: 프로그램이 필요로 하는 실제 데이터들을 모델링 하는 기술
캡슐화: 객체지향의 가장 중요한 데이터 보호 기술
상속: 클래스의 재사용과 소스 코드의 중복제거를 목정으로 하는 기술
다형성: 상속을 이용하여 여러 클래스 타입을 하나의 클래스 타입으로 다루는 기술
유연성을 확보하기 위해서 구체적인 것은 제거하여 실제 데이터들을 모델링 하는 기술로 프로그램의 필요한 공통점을 추출하고, 불필요한 공통점을 제거하는 과정
추상화 EX1)
회원관리
주민등록번호 pNo string
이름 name string
성별 sex char
주소 address string
나이 age int
객체지향의 가장 중요한 데이터 보호 기술
데이터의 접근 제한(private)을 원칙으로 함
캡슐화 원칙
클래스의 멤버 변수에 대한 접근 권한은 private을 원칙으로 한다.
클래스의 멤버 변수에 대한 연산 처리를 목적으로 하는 함수들을 클래스 내부에 작성
멤버 함수는 클래스 밖에서 접근할 수 있도록 public으로 설정한다.
EX1)
public class OverloadingPractice {
public void getNum(int num1){
//OverloadingPractice.getNum(3);
}
public void getNum(float num1){
//OverloadingPractice.getNum(2.3);
}
public void getNum(int num1, int num2){
//OverloadingPractice.getNum(3 ,5);
}
}
//클래스 재사용, 코드의 중복 제거
특징
모든 클래스는 Object 클래스의 후손
부모 클래스의 생성자, 초기화 블록은 상속 안 됨
부모의 private 멤버는 상속은 되지만 직접 접근 불가
자바: 부모지정은 1개만, 단일 상속만
단일상속
다중상속