h-i-s-t-o-r-y

[Java] 객체 지향 프로그래밍 - 클래스(Class) / 객체(Object) / 인스턴스(Instance) 본문

Java

[Java] 객체 지향 프로그래밍 - 클래스(Class) / 객체(Object) / 인스턴스(Instance)

H' 2021. 7. 16. 16:26

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 클래스명();

 

 

Comments