본문 바로가기

JAVA/변수 및 객체, 기타

객체란

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