Programming language/Java

[Java]객체와 클래스

  • -
반응형
객체와 클래스

자바는 객체지향의 언어이다.

객체를 이해하기 위해서는 클래스의 개념도 알아야 한다. 또 인스턴스가 무엇인지도 알아야 한다.

 

객체는 뭘까.

 

구글링을 조금만 해봐도 객체에 대한 다양한 정보들을 얻을 수 있다.

저마다 말하는 내용이 비슷해 보이면서 달라서 헷갈릴 수 있지만 결국 그 뜻은 같다.

 

간단하게 객체는 클래스를 사용하여 만들어진 것이다. 즉, 클래스는 객체를 만들기위한 틀이 된다.

아래 예를 통해 이해를 조금 도와봤다.

 

사람들이 자주 찾는 카페.

카페에는 다양한 종류의 음료들이 있다.

커피부터 에이드, 쥬스 등등...

 

이러한 카페를 클래스라고 생각하자.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package biz.test;
 
public class Cafe{
    
    String drink = "";    // 음료
    int pay;        // 가격
    
    public void getOrder(String ordrink){    //음료 주문을 받는 메소드
        drink = ordrink;
        if( drink == "아메리카노" ){
            pay = 4000
        } else if( drink == "아인슈페너" ) {
            pay = 5500;
        } else if( drink == "자몽에이드" ) {
            pay = 5000;
        }
        System.out.println("주문하신 " +drink+ " 나왔습니다.");
        System.out.println("가격은 " +pay+ "원 입니다.");
    }    
}
cs

 

카페라는 클래스를 생성했고, 그 안에는 음료와 가격(멤버 변수), 주문을 받는 기능(메소드)이 있다.

 

getOrder를 통해 저마다 다른 주문을 받고 주문 처리를 한다.

(편의상 제어문으로 3가지 음료만 처리했다)

 

이제 객체를 생성하러 카페에 가보자.

 

1
2
3
4
5
6
7
8
9
10
package biz.test;
 
public class CafeGo{
        
    public static void main(String args[]) {        
        
        Cafe mydrink = new Cafe();
        mydrink.getOrder("아메리카노");    
    }
}
cs

 

객체를 생성했다.

 

이제 주목해야할 것은 Cafe mydrink = new Cafe(); 이다.

여기서 mydrink는 객체가 된다.

객체는 new 생성자를 이용해 실체화된다. 이 과정을 인스턴스화라고 하며, 이렇게 만들어진 객체를 인스턴라고 한다.

 

실체화된 인스턴스는 우리가 원하는 음료가 된다.

인스턴스와 객체의 관계 대해서는 나중에 자세히 다뤄보도록 해야겠다. ☞ 인스턴스 보

 

다시 돌아와서.

getOrder를 이용해 아메리카노를 주문하였다.

결과를 보자.

 

 

아메리카노를 주문했고, 주문한 음료가 정상적으로 나왔다.

다른 음료들도 주문해보자.

 

1
2
3
4
5
6
7
8
9
10
11
package biz.test;
 
public class CafeGo{
        
    public static void main(String args[]) {        
        
        Cafe mydrink = new Cafe();
        mydrink.getOrder("아인슈페너");
        mydrink.getOrder("자몽에이드");
    }
}
cs

 

 

 

☞정리하면 음료(객체)를 주문(생성)하기 위해서는 카페(클래스)라는 장소가 필요하고,

인스턴스화 과정을 통해 우리가 원하는 음료(인스턴스)를 얻을 수 있게 되는 것이다.

 

 


+ 피드백은 언제나 환영입니다 :)

반응형

'Programming language > Java' 카테고리의 다른 글

[Java]JVM 메모리 구조  (0) 2018.08.12
[Java]인스턴스(Instance)  (0) 2018.08.09
[Error]java.lang.ArrayIndexOutOfBoundsException  (0) 2018.08.09
[Java]생성자(Constructor)  (0) 2018.08.08
[Java]인터페이스(Interface)  (0) 2018.07.20
Contents

포스팅 주소를 복사했습니다.

이 글이 도움이 되었다면 공감 부탁드립니다.