[자바]OOP개념잡기

programming 2005. 11. 10. 14:57 |

자바를 공부한다는 사람이 OOP의 개념도 이해를 하지 못하고 진행을 하니 진도가 전혀 나가지를 안는듯하다.

Object는 현실생활의 모든 것들을 다 object로 보고 이것을 소프트웨어적으로 구현이 가능한것 같다. 이러한 object는 두가지 특성을 가진다고 한다. 이것은 소프트웨어적으로 구현하기 위하여 그러한 범주안으로 넣은 것은 아닐런지…
하여간에 상태(state)행위(behavior)가 그것이다. 예를들면, 개(dog)는 이름, 색깔등과 같은 state가 있고 짖는다, 꼬리를 물고있다 등과 같은 behavior가 있다. 이러한 현실생화의 object들을 소프트웨어적으로 구현할때 state는 하나 이상의 변수(variable)에 저장하고 behavior는 method라는 함수에 의해서 구현이 가능하단다.
한마디로 object는 variable과 관련된 method들의 소프트웨어적 꾸러미라고 볼수있다.

자전거는 여러종류의 자전거들이 있다. 하지만 여러종류의 자전거들도 공통으로 가지고 있는 state(current gear, current cadence,two wheels)와 behavior(change gears, brake)가 있다. 이렇듯 모든 object에 공통으로 가지고 있는 variable과 method를 정의하는 원형을 class라고 한다.

그렇다면, 이러한 class의 정의는 어떻게 하는가? 이 정의를 1장에서 하고 있더군..짭
class은 object oriented언어의 기본 building block으로 아래와 같은 형식을 가진다.
class clss-name {
. . . //class definition block
}
class의 정의은 class라는 키워드로 시작하여 클래스 이름이 들어가고 괄호안에 class에 해당되는 variable과 method를 정의한다.
class HelloWorldApp {
public static void main(String[] args) {
System.out.println(”Hello world!”); //Display the string.
}
}

HelloWorldApp라는 class는 변수가 없고 main이라는 단 하나의 method만을 가지고 있다. main method는 모든 자바 프로그램들의 시작지점으로 아래와 같은 형식을 가진다.
public static void main(String[] args)
public : 어떤 class이던지 main method를 호출할 수 있도록 한다.
static : HelloWorldApp class와 연관된 main method라는 것을 의미한다.
void : main method가 아무런 값도 되돌려 주지 않는다는 것을 의미한다.

여기에다 Message라는 것이 있는데 이것은 object간의 통신수단이라고 생각하면 될것같다. 예를들어 당신이 자전거의 기어를 변경하기를 원한다면 당신이라는 object에서 자전거라는 object로 기어를 변경하라는 Message를 보내서 동작하도록 하는 것이다.

Inheritance(상속,계승)이라는 말은 이전에 class에서 자건거의 예를 들었던것을 상기하면 될것 같다. 여러종류의 자전거들이 있는데 공통으로 들어가는 내용들의 내려받는 개념정도로…

또.. object와 연관되지 않는 device들간의 통신을 위한것이 interface 라고 한다.

Posted by salgunamu
: