본문 바로가기
개발공부/Java

[Java] 01. 객체와 객체 지향 프로그래밍의 의미

by sangyeon 2021. 11. 17.
728x90

1. 객체

- 사전적 의미로 "의사나 행위가 미치는 대상"

- 구체적, 추상적 데이터의 단위 (ex: 학생, 회원, 생산, 주문, 배송 등)

 

2. 객체 지향 프로그래밍과 절차 지향 프로그래밍

아침에 일어나 학교에 가는 과정을 예로 들어보면

 

* 절차 지향 프로그래밍의 경우

- 시간이나 사건의 흐름에 따른 프로그래밍을 뜻한다.

(ex: 일어난다 -> 씻는다 -> 밥 먹는다 -> 버스에 탄다 -> 요금을 지불한다 -> 학교에 도착한다.)

- 대표적인 절자 지향 언어가 C이다.

 

* 객제 지향 프로그래밍의 경우

- 객체를 정의하고

- 각 객체가 제공하는 기능들을 구현하고

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

- 대표적인 객체 지향 언어는 Python, JavaScript, C#, C++ 등이 있다.

 

 

3. 생활 속 객체를 찾아 클래스로 구현해보기

위와 같이 설명해도 여전히 감이 오지 않는다.

아래 예문에서 객체를 찾아보자. 정답은 글 맨 아래에 있다.

 

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

- 아침에 회사에 가는 길에 스타벅스에 들려 아이스 카페라떼를 주문했다.

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

 

4. 클래스는 객체의 청사진이다.

객체의 속성은 클래스의 멤버 변수로 선언한다.

아래 학생/주문/회원 클래스를 통해 각각의 객체를 생성해본다.

==========
01. 학생 클래스
==========
public class Student {

int studentNumber;
String studentName;
int majorCode;
String majorName;
int grade;
}

==========
02. 주문 클래스
==========
public class Order {

int orderId;
String buyerId;
String sellerId;
int productId;
String orderDate;
}

==========
03. 회원 클래스
==========
public class UserInfo {

String userId;
String userPassWord;
String userName;
String userAddress;
int phoneNumber;
}

객체 지향 프로그램을 할 때는,

- 객체를 정의하고

- 각 객체의 속성을 멤버 변수로, 역할을 메서드로 구현하고

- 각 객체간의 협력을 구현한다.

 

클래스 코딩하는 방법은

- 클래스는 대문자로 시작하는 것이 좋다.

- java 파일 하나에 클래스는 여러 개 있을 수 있지만, public 클래스는 하나이고, public 클래스와 .java 파일의 이름은 동일해야 한다.

- camel notation 방식으로 명명한다.

 

 

 

 

3. 생활 속 객체를 찾아 클래스로 구현해보기

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

(정답 : 회원/ 판매자/ 제품)


- 아침에 회사에 가는 길에 스타벅스에 들려 아이스 카페라떼를 주문했다.
(정답 : 나(주체)/ 회사/ 별다방 커피숍/ 커피/ 바리스타)


- 성적확인을 위해 학사 관리시스템에 로그인하여 수강한 과목들의 성적을 확인했다.
(정답 : 학생/ 과목/ 교수/ 강의실/ 통계자료 등등)

 

728x90