1.객체 지향 언어
현실세계의 '사물이나 개념처럼 독립되고 구분대는 각각의 객체, 그리고 그들의 상호작용으로 발생하는 모든 사건' 이라는 개념을 컴퓨터로 옮겨놓아 만들어 낸것.
자바의 객채(Object)란 클래스에 정의된 내용되로 new 연산자를 통해 메모리 영역에 생성된 것
2. 클래스의 등장배경
객체의 특성에 대한 정의를 한 것으로 캡슐화를 통해 기능을 포함한 개념.
= 사물이나 개념의 공통요소를 추상화 하여 정의
추상화 : 유연성을 확보하기 위해 구체적인 것을 제거한다는 의미로, 프로그램에서 필요한 공통점을 추출하고 불필요한 공통점을 제거하는 과정
ex) 직원 : 이름, 성별, 직원번호, 주소, 전화번호...etc
-> 직원
이름(name) : String
성별(gender) : char
직원번호(pNum) : int
주소(address) : String
전화번호(phone) : String
직원 | ||
-name : String -gender : char -pNum : int -address : String -phone : String |
<클래스>
3. 객체
현실에 존재하는 독립적이면서 하나로 취급되는 사물이나 개념.
객체지향언어에서의 객체의 개념은 클래스에 정의된 내용대로 메모리에 할당된 결과물 = Object
Reference 객체명 = new 객체클래스();
라고 하면 객체명으로 객체가 생성된다.
Reference위치에는 객체 클래스나, 후에 적을 부모 클래스를 사용 할 수있다.
직원중 김철수 라는 직원과 김영희가 있다고 하자.
이를 메모리에 싣고 싶다면 다음과 같이 할 수있다.
직원(클래스) |
---------> (인스턴스화) ---------> |
김철수 |
김영희 |
이때 김철수, 김영희는 객체,
직원의 인스턴스는 김철수, 김영희 라고 말할 수 있다.
즉 김철수를 메모리에 싣기 위해 인스턴스화 하려면
직원 김철수 = new 직원();
라고 하면된다.
new라는 연산자에 의해 클래스의 생성자(접근제한자 클래스명(){ })를 사용해서 Heap 메모리의 공간에 서로 다른 자료형의 데이터가 연속으로 나열/ 할당된다.
Stack | Heap | Static | |
김철수(0x123) | 0x123(name, gender,pnum,address,phone) |
'JAVA > 변수 및 객체, 기타' 카테고리의 다른 글
클래스의 변수 (0) | 2019.12.15 |
---|---|
클래스 (0) | 2019.12.15 |
연산자 (0) | 2019.12.13 |
JAVA메모리구조 와 출력 메소드 (0) | 2019.12.12 |
데이터 오버플로우와 형변환 (0) | 2019.12.12 |