본문 바로가기

Dev.BackEnd/JAVA

[JAVA] 2. JAVA와 객체지향 / 객체란? 클래스란? 인스턴스란? 생성자란?




Chapter 2. 객체지향 프로그래밍(Object-Oriented Programming)

객체지향적인 프로그래밍이란 어떤 프로그래밍을 말하는가?
객체란 무엇이며, 객체를 이야기할 때 나오는 클래스, 인스턴스란 무엇인가?

객체란 주변에 존재하는 모든 사물, 생명체를 의미한다.
객체지향에 대해서 집중적으로 다루는 포스팅에서 좀 더 객체지향에 대해서 알고,
자바에서의 객체지향이란 무엇을 말하는가를 집중적으로 알아보겠다.

객체를 이루는 것은 데이터와 기능이다.
객체를 생성하기에 앞서 객체의 생성을 위한 틀을 먼저 만들어야 한다.
그리고 그 틀은 클래스를 의미한다.
클래스의 구조는
우선 변수를 선언하고
그 안에 메소드를 정의하는 형식이다.

클래스는 설계도라고 할 수 있고
그것을 구체적인 제품으로 구현한 것이 인스턴스라고 할 수 있다.

인스턴스에 따라서 들어가있는 변수가 다르므로
변수에 따른 행위가 메소드가 되는 것이다.


그렇다면 인스턴스는 어떻게 생성하는가?
생성자(Constructor)
생성자는 인스턴스 생성시 딱 한번 호출되는 메소드이다.
생성자 메소드는 인스턴스 변수의 초기화를 목적으로 정의된다.
클래스의 이름과 동일한 이름의 메소드이여야 하며
반환형이 선언되어 있지 않으면서, 반환하지 않는 메소드이어야 한다.
반환형이 선언되어 있지 않다는 것은 void 마저 없다는 것이다.
물론 return 도 정의되어 있지 않다.
(클래스 안에 변수를 선언한 뒤 생성해주면 된다.)

인스턴스 생성문과 생성자를 호출하는 호출문이 겹쳐있다.
Number num = new Number()
생성자는 클래스의 이름과 항상 동일해야한다.

그리고 자바의 인스턴스 생성시에는 반드시 생성자가 호출되어야 한다.
이렇게 되면 ( )안에 인스턴스 변수를 초기화시킬 수 있다.
그리고 이 때 초기화된 변수는 Call by Reference 로 수행된다.
this로 전역 변수에 대한 값을 초기화 시켜준다. 

(this에 대해서는 뒤에 다시 다룬다.)


class Calculator{
     int left, right;

     public Calculator (int left, int right){ // 이것이 생성자!
     this. left = left;
     this.right = right;
     }
}}



Chapter 2. The End