컴퓨터프로그래밍/JAVA

자바의 기초 클래스와 인스턴스

zelkova 2013. 8. 8. 07:47

 <목차로 돌아가기>


  클래스와 인스턴스의 이해

우선 들어가기전에 자바의 클래스 파일을 확인해보자 이제까지 보아왔던 클래스는 아래와 같을 것이다


test.java

1

2

3

4

5

6

7

 public class test

 {

    public static void main(String[] args) 

    { 

            System.out.println(" 안녕하세요"); 

    } 

 }


이 파일을 컴파일하면 .class 파일로 변하는데 이것이 클래스이다. 이제까지 단순하게 이것이 클래스라고 생각해 왔는데 이건 단지 생산품일 뿐이다.


클래스는 조금더 나아가서 설계도를 만드는 것 이라고 해석할 수 있다. 클래스라는 설계도에 의해 실제로 만들어지는 것을 인스턴스라고 한다.


가구를 예로들자면 가치있는 옷은 장인의 손길이 한땀한땀 정성들여 만든 옷 이지만

생산성 측면에서는 공장에서 푹푹 찍어내는 것이 수작업으로 만드는 옷보다 몇 배나 많은옷을 생산할 수 있을 것이다.


자바 코드를 직접 수작업으로 일일이 코딩하지 않고 클래스로 만들어 놓고 반복되는 소스코드의 틀을 잡아놓는다면 개발 생산성이 증가할 것이다.


여기까지 설명을 들어도 자바에는 어떻게 사용하는지 감이 잡히지 않는다.

아래의 소스를 보면서 이해해보자.



  인스턴스 사용방법




1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

class Calculator2

{   

   static double PI = 3.14; // 클래스 변수인 base가 추가되었다.  

   static int base = 0;  

   int left, right;  

   public void setOprands(int left, int right)  

   {  

      this.left = left;   

      this.right = right;   

   }  

   public void sum()  

   { // 더하기에 base의 값을 포함시킨다.  

      System.out.println(this.left + this.right + base);   

   }  

   public void avg()  

   { // 평균치에 base의 값을 포함시킨다.  

      System.out.println((this.left + this.right + base) / 2);   

   }  

}   


public class CalculatorDemo2  

{  

   public static void main(String[] args)  

   {  

      Calculator2 c1 = new Calculator2();   

      c1.setOprands(10, 20); // 30 출력  

      c1.sum();  

      Calculator2 c2 = new Calculator2();  

      c2.setOprands(20, 40); // 60 출력   

      c2.sum(); // 클래스 변수 base의 값을 10으로 지정했다.  

      Calculator2.base = 10; // 40 출력   

      c1.sum(); // 70 출력   

      c2.sum();   

   }  

}







결과는 아래와 같다.

30

60

40

70


간단하게 개념을 잡자면 위 소스중 아래에 있는 부분이 클래스이다.


class Calculator2 {

    static double PI = 3.14;

    // 클래스 변수인 base가 추가되었다.

    static int base = 0;

    int left, right;

 

    public void setOprands(int left, int right) {

        this.left = left;

        this.right = right;

    }

 

    public void sum() {

        // 더하기에 base의 값을 포함시킨다.

        System.out.println(this.left + this.right + base);

    }

 

    public void avg() {

        // 평균치에 base의 값을 포함시킨다.

        System.out.println((this.left + this.right + base) / 2);

    }

}


그리고 아래의 부분이 클래스를 이용하여 인스턴스를 찍어내는 것을 볼 수 있다

  Calculator2 c1 = new Calculator2();

  Calculator2 c2 = new Calculator2();



반응형

'컴퓨터프로그래밍 > JAVA' 카테고리의 다른 글

자바의 기초 - FQCN, JAR  (0) 2013.08.08
자바의 기초 - 인터페이스  (0) 2013.08.08
변수의 구분  (0) 2013.08.08
자바 메소드(함수) 이해하기  (0) 2013.07.31
자바 변수이해하기  (3) 2013.07.31