프로그래밍/Java / / 2022. 8. 26. 13:49

[자바 - Java] 객체와 객체 지향 프로그래밍 (클래스, 참조변수, 생성자, 객체)


1. 객체와 객체 지향 프로그래밍(Object Oriented Programming, OOP)

1) 객체(Object) : 크게 물리적인 객체와 개념적인 객체로 나뉜다.

 

- 구체적 데이터의 단위(물리적인 객체)

ex) 개, 고양이, 호랑이, 학생, 회원 등

- 추상적 데이터의 단위(개념적인 객체)

ex) 동물, 주문, 배송, 자동차 등

 

 

2) 절차 지향 프로그래밍 & 객체 지향 프로그래밍

 

- 절차 지향 프로그래밍 : 시간이나 사건의 흐름에 따른 프로그래밍

(9ex) 일어난다 -> 씻는다 -> 밥을 먹는다 -> 대중교통을 탄다 -> 요금 지불한다 -> 직장에 도착한다

- 객체 지향 프로그래밍

객체 지향 프로그래밍
객체 지향 프로그래밍

- 객체를 정의(클래스로 구현)한다.

- 각 객체 제공하는 기능들을 구현한다.

- 각 객체가 제공하는 기능들 간의 메시지 전달을 통하여 객체 간의 협력을 구현한다.

 

 

3) 객체의 예

 

- 온라인 쇼핑몰에 회원 로그인을 하고 여러 판매자가 판매하고 있는 제품 중 하나를 골라 주문을 한다.

- 아침에 회사 가는 길에 별다방에 들려 커피를 주문했다.

- 성적확인을 위해 학사 관리 시스템에 로그인하여 수강한 과목들의 성적을 확인했다.

 


2. 클래스

1) 객체와 관련된 데이터와 처리 동작을 한데 모은 코드 뭉치이다.

 

2) 어느 정도 특징적인 데이터와 동작으로 추려낼 필요가 있다.

 

3) 추려내는 과정을 추상화(Abstraction), 일반화라고 부른다.

객체 - 추상화된 클래스
객체 - 추상화된 클래스

4) 명사적인 특징을 뽑아내는 추상화 과정을 멤버 변수 추출이라고 하고 동사적인 특징을 뽑아내는 추상화 과정을 멤버 함수(메서드) 추출이라고 한다.

 

5) 클래스는 객체의 청사진(Blueprint)이다.

 


3. 객체와 클래스

1) 클래스는 객체를 프로그래밍에서 사용하려고 추상화해서 기술해놓은 설계도이다.

 

2) 프로그래밍에서 사용하려면 설계도(클래스)를 기초로 실체(객체)를 만들 필요가 있음.

- 실체화된 것을 객체(인스턴스)라고 한다.

- 실체화하는 작업을 객체를 생성한다고 한다.(instance)

 

3) 클래스라는 설계도대로 구현한 것을 메모리에 탑재해 메모리 주소를 부여한 것이 객체이다.

 

4) 실제로 클래스를 객체로 만드는 코드는 아래와 같다.

Student myStudent = new Student();

* 여기서 Student = 클래스, myStudent = 참조 변수, new = 객체 생성, Student() = 생성자를 말한다.

 

- Student 클래스의 Student() 생성자를 이용해 새로 만들어서(new) 생성된 객체를 메모리에 적재하고 변수 myStudent에 대입시킨다.

 


 

LIST
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유