본문 바로가기

Java기초

[Java 기초] 객체와 객체지향

1. 객체란 무엇인가?

 객체란 구체적, 추상적 데이터의 단위를 말하며 여러 명사를 뜻한다.

 만약 학생이 있다면 학번, 학과, 이름, 전화번호, 주소 등이 있는 것 처럼

 학생은 객체이고 나머지들은 속성, 엔티티 등으로 명명을 한다.

 

2. 객체지향 프로그래밍(Object Oriented Programming) 과 절차지향 프로그래밍

 절차지향 프로그래밍은 대표적으로 C언어가 있다.

 아침에 일어나 학교를 간다고 가정을 하자.

 기상 -> 세안 -> 식사 -> 버스 탑승 -> 요금 지불 -> 하차 -> 학교 도착

 이러한 순서로 진행이 되는 것을 절차 지향이라고 하며

 

 객체 지향이란 객체와 객체간의 서로 상관 관계를 의미한다.

 학생, 밥, 버스, 학교는 객체이며 먹고 타고 가는등의 행위는 인터럭션 또는 협력이라고 한다.

 학생과 버스는 탑승과 하차의 관계, 요금지불과 받는 관계, 학생과 밥은 먹고 먹히는 관계 등으로 나타낼 수 있다.

객체지향 간단한 그림


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

Order라는 주문 객체의 속성 선언

주문을 하게 된다면 주문자 번호, 판매자 아이디, 구매자 아이디 등의 속성들이 있다.

이 해당 속성들을 클래스 내부에 멤버 변수로 선언을 해 준다.

 

3. 함수와 메서드

 함수 (Function)란 하나의 기능을 제공하는 코드라고 보면 될 것 같다.

 만약 덧셈을 하는 함수가 있다고 가정을 해 보자.

세 조건의 공통점은 (더한다)라는 것 이다. 이 때 각각 코드를 작성해서 덧셈을 진행해도 무관하지만

함수를 지정하여 즉, 덧셈의 기능을 하는 함수를 만들게 된다면 편리하다.

특히, 오류가 생겼을 때 각각의 코드를 수정하는 것 보다 공통으로 사용하였던 더하기 함수를 수정하면 되니 편리하기도 하다.

int add(int num1, int num2) // num1 과 num2는 매개변수를 나타낸다.
{
	...
	return 반환값;
}

int 형으로 선언된 함수는 반환값도 반드시 int형이어야 한다.

즉 함수와 반환값의 데이터 타입이 같아야 한다.

함수의 반환값이 없을 경우 함수의 데이터 타입은 void로 지정하고 return은 존재하지 않아도 무관하다.

 

4. 함수 호출과 스택메모리

 스택 메모리란 함수가 호출 될 대 지역변수들이 사용하는 메모리, 수행이 끝나면 삭제가 된다.ㅜ

addNum함수와 main의 int n1, n2 그리고 total을 보자

 

메모리 할당

함수 호출 시에는 매개변수 num1과 num2 그리고 addNum함수의 result까지 공간이 할당된다.

함수 호출이 끝난 뒤에는 할당된 공간이 사라진다.

 

* 메서드 : 함수와 다르게 클래스에 속해서 멤버 변수들을 활용해서 구현된 함수.

 

'Java기초' 카테고리의 다른 글

[Java 기초] 생성자  (0) 2021.06.15
[Java 기초] 객체와 메서드  (0) 2021.06.15
[Java 기초] 2진수 8진수 그리고 16진수 출력하기  (0) 2021.06.09
[Java 기초] 출력하기  (0) 2021.06.09
[Java 기초] Mac M1 Eclipse install  (0) 2021.06.03