[Java] 객체 지향 프로그래밍 - 클래스(Class) / 객체(Object) / 인스턴스(Instance)
1. 객체 지향적 프로그래밍 기법
(Object Oriented Programming == OOP)
객체 단위로 프로그래밍 하는 기법.
유지보수와 확장에 용이하다.
2. 자바는 객체 지향적 프로그래밍 언어이다.
자바의 시작객체(개체)는 main() 함수를 가지고 있는 객체이다.
[객체]는 속성 + 기능을 가지고 있고, 객체를 만들기 위해서는 [클래스]가 필요하다.
3. 클래스와 객체의 의미(차이점) ***
- 클래스 : 객체를 만들기 위한 설계도
- 객체 : 클래스로 생성된 것
4. 클래스 선언 형식
modifiers
access
[접근지정자] [기타제어자] class 클래스명 [extends Super클래스] [implements 인터페이스...]{
// 구성 요소
}
5. OOP의 특징 == 클래스의 특징
- 상속성
- 추상화
- 캡슐화
- 다형성 (인터페이스) ***
- 은닉화
6. [클래스 설계]하는 과정(단계)
ㄱ. 요구분석
ㄴ. 특징(속성), 기능(함수==메서드) 목록 작성
ㄷ. 클래스 선언(설계
ㄹ. 객체 테스트
ㅁ. 문제점 - 유지보수
ㅂ. 유지보수 안정화 되면 -> 상용화
ㅅ. 버전 관리 + 기능, 문제점 처리
7. 클래스의 구성요소(멤버)
ㄱ. 속성(특징)을 나타내는 변수 - 멤버변수 == 필드(field)
ㄴ. 기능(일)을 구현하는 함수 - 멤버함수 == 메서드(method)
8. 클래스 앞에 붙이는 접근지정자(access modifiers)의 종류 / 특징 설명
ㄱ. public : 다른 패키지에서도 이 클래스를 사용( 참조, 상속 ) 가능
*** 한 .java파일에 public class 는 하나만 존재 ***
ㄴ. default( X ) : 같은 패키지 내에서만 이 클래스를 사용( 참조, 상속 )
[ 중첩 클래스 선언 시에만 사용할 수 있다. ]
ㄷ. protected ( 비활성 ) : 같은 패키지 내에서 상속, 참조 가능
** 다른 패키지에서 상속만 가능
ㄹ. private( 비활성 ) : 같은 파일 내에서 상속, 참조 가능
9. 클래스 앞에 붙이는 기타제어자의 종류
(중복 가능 -> final static / abstract static 같이 써도 상관없음)
ㄱ. abstract : 추상 클래스 선언
ㄴ. final : 최종 클래스 선언(상속)
-> final double PI = 3.141592; //이 상수 final이랑 의미 완전다름
[ 중첩클래스 ]
ㄷ. static( 비활성 ) : 스태틱(정적) 클래스 선언
10. 인스턴스(instance)와 인스턴스화
클래스 : 객체의 설계도
객체 : 자료형이 클래스 타입으로 선언된 참조변수
인스턴스 : new 연산자에 의해 Heap 영역에 생성된 객체
인스턴스화 : new 연산자를 이용해 객체를 생성하는 과정
> 객체를 생성하는 과정
클래스명 객체명 = new 클래스명();