본문 바로가기

카테고리 없음

자바의 기초(클래스Class와 객체Ojbect)

코딩 언어란?

코딩을 하면서 우린 언어라는걸 처음 마주하게됩니다. 

위와같은 수많은 언어들이 존재하게 됩니다. 이 수많은 언어들은 코딩을 하는데 필요한 언어들입니다. 이많은 언어를 다 공부할 필요? 절대없습니다. 하나만 잘해도 먹고사는데 아무~지장없습니다. 이렇게 다양한 언어들이 존재하는 이유는 컴퓨터가 다달라서 일까요? 물론 그런 이유도 있겠지만 기본적으로 사람이 다양해서라고 생각합니다. 사람은 저마다 어떠한 현상을 이해하는 방식이 전부 다르다는것은 모두 동의하실 겁니다. 그렇기 때문에 언어도 기계를 다루는 현상을 가지고 저마다 어떻게 해결하는지 방식의 차이가 있습니다. 그 취지에따라 다른언어의 형태로 존재하게 되는것이죠.


그렇다면 저희는 안드로이드 앱을 만들기 위해서 자바라는 언어를 사용할 것입니다. 지금부터 자바에 대해서 설명드리도록하겠습니다.


JAVA란?


어릴적에  레고나 과학상자같은것들을 해보셨을 겁니다. 무언가를 만들기 위해서 레고는 블럭을 과학상자는 각각의 부품들을 사용해서 하나의 완성품을 만들었지요. 하나의 완성품과 그것을 구성하는 각각의 구성품들. 이것의 자바의 핵심입니다. 자바라는 언어는 기능별로 코드를 분류해서 만들고 그것을 취합하여 하나의 프로젝트를 만드는데 목적이 있습니다. 

위 그림과 같이 각각의 기능을 하는 블록을 쌓아올려 성을 만들듯이 기능별 코드를 정의하고 그코드를 사용성에 맞게 사용하여 하나의 프로젝트를 완성합니다. 그렇다면 블록형으로 만드는것은 어떻게 만드는 것일까요?

자바는 블록을 만들기 위해 먼저 블록 설계도를 작성합니다. 이를 Class 라고 합니다.  자바의 Class는 블록을 만들기 위한 블록설계도로서 블록에 필요한 부품. 기능들을 정의하는 공간입니다.


package com.company;

public class Main {

public static void main(String[] args) {
// write your code here
}
}


위와같이 클래스를 정의합니다. 잘 살펴 보시면 클래스 옆에 Main 이라는것으로 클래스의 이름을 지어주고 "{"  ,  "}" 중괄호를 통해서 클래스의 영역을 지정합니다. 다시말씀드리면 위의 코드는 Main 이라는 이름을 가진 클래스이고 {}영역까지 클래스의 범위입니다. 저밖에다가 코드를 더 작성하면 그코드는 Main의 속한 코드가 아닙니다.


다음으로 클래스 영역안에 샬라샬라 하고 다시 main 이라는것이 나옵니다. 그리고 다시 괄호가 나오게되는데 이것을 자바에서 메소드(Method)라고 부릅니다. 메소드는 기능을 정의하는 공간입니다. 실제 메소드안에서 모든일들이 이루어지게 되는것이죠.


클래스와 메소드가 대충 뭔지는 알았으니 이제 사용법을 한번 봐보겠습니다.

아따 복잡합니다. 접근제어권자는 지금은 생략하고 다음 포스팅에서 설명드리도록 하겠습니다. public class 클래스명 {} , public return 메소드명{} 이렇게 기억하시면 되겠습니다. 메소드 작성법에서 return 이라는 생소한것이 나왔는데 일단은 void라 쓰고 다음포스팅에서 같이 설명드리도록하겠습니다.


위의 코드는 Main 클래스안에 main 이라는 메소드를 작성한 코드입니다. 쉽게 바꿔서 Main 이라는 블록은 main 이라는 기능을 가지고 있는 설계도를 만들었습니다. 다른 클래스도 한번 만들어 볼까요?



public class ApartMent {

public void toilet(){
//화장실 기능
}

public void room(){
//내방 기능
}

public void livingRoom(){
//거실 기능
}
}

아파트라는 클래스를 만들었고 그안에 화장실,방,거실등을 만들었습니다. 그메소드안에는 각각의 기능들이 있다고 가정해보겠습니다.


이제 아파트 설계도를 만들었으니 아파트를 지어야겠지요. Main 이라는 클래스는 단지를 이루고 있다고 생각해봅시다.

public class Main {

public static void main(String[] args) {
ApartMent apartMent101 =new ApartMent();
ApartMent apartMent102 =new ApartMent();
ApartMent apartMent103 =new ApartMent();
}
}

Main이라는 마을에 아파트 3채를 지었습니다. 여기서 블록 생성법을 보겠습니다.

위와 같이 클래스명 + 블록의이름 = new 클래스명(); 식으로 작성해주는것이 ApartMent라는 설계도로 실제 아파트를 만들게 되는것 입니다. 이렇게 만들어진 블록(실제아파트)를 자바에서는 Object 혹은 객체라고 부릅니다. 설계도를 가지고 실제 제품을 만드는것 Class 를 Object 로 만드는 위와같은 작업을 인스턴스화 혹은 초기화라고 부릅니다. 말이 상당히 어렵습니다. 쉬운 이해를 위해 아래 그림을 참조하면 좋습니다. 

Class를 Object 형태로 바꾸어서 사용한다. 라는말을 풀어보자면 계획은 Class 에서 실제 사용은 Object에서 라고 보시면 되겠습니다.  

Class 는 계획(설계도) Object는 사물(제품) 꼭 기억하시길 바라겠습니다. 다음 포스팅은 객체와 메소드에 대해서 좀더 심층적으로 다뤄보도록 하겠습니다. 감사합니다.