Java 공부/자바(객체지향문법)

Day09-객체와 클래스

Hesitater 2021. 8. 25. 12:50
728x90

객체와 클래스

- 자바에서 클래스는 객체를 만들기 위한 틀입니다.
- 클래스의 변수는 객체의 속성이고, 클래스의 메서드는 객체의 기능입니다.

왜 우리가 클래스를 사용하는가?
- 공장에서 물건을 생산할 떄 대량생산을 하기위해 틀을 만들고 사용한다.
- 클래스는 이 대량생산을 위한 틀인 것이다

객체 생성 명령
className instanceName = new Constructor();

Pen.java

1: public class Pen {  
2:             //클래스 안의 코드 작성  
3: }

PenInstanceExample.java

1: public class PenInstanceExample {  
2:         public static void main(String\[\] args) {  
3:             Pen redPen = new Pen();  
4:             System.out.Println(redPen);  
5:         }  
6: }

-------------------------------------------------------------------------------

예시 한번 보면서
ObjectBasic01, ObjectBasic02

결과값

public class ObjectBasic01 {  
    public static void main(String\[\] args) {  

        // 기존에 사용하던 방법  
        System.out.println("====1번 계산기====");  
        System.out.println(add(5)); // 5  
        System.out.println(add(10)); // 15  
        System.out.println(add(3)); // 18  

        System.out.println("====2번 계산기====");  
        System.out.println(add2(10));  
        System.out.println(add2(20));  

}  

    // 1번계산기  
    static int result = 0;  

    static int add(int a) {  
    result += a;  
    return result;  

    }  

    // 2번계산기  
    static int result2 = 0;  

    static int add2(int a) {  
    result2 += a;  
    return result2;  

    }  

}

객체와 클라스 쪽

틀에다가 Calculator 작성 (main이 없음)

public class Calculator {
    //ObjectBasic01 에잇는 계산식 옮김, main없는 class

     int result = 0;

     int add(int a) {
        result += a;
        return result;
     }
}

Calculator 틀을 ObjectBasic02 에서 사용해보자

결과값이 동일하게나옵니다.

public class ObjectBasic02 {  
    public static void main(String\[\] args) {  

        System.out.println("====1번 계산기====");  

        Calculator cal1 = new Calculator();  
        System.out.println(cal1.add(5));  
        System.out.println(cal1.add(10));  
        System.out.println(cal1.add(3));  

        System.out.println("====2번 계산기====");  
        Calculator cal2 = new Calculator();  
        System.out.println(cal2.add(10));  
        System.out.println(cal2.add(20));  

  }  
}

위에서 객체 생성 명령이 이것이다
Calculator cal1 = new Calculator(); < 이형태는 무조건 암기.. 일단 이형태 외워
(className instanceName = new Constructor(); )

이 과정을 인스턴스(instance)화 라고 합니다 -> Calculator cal1 = new Calculator();

- 인스턴스화 를 하기 전까지 ( 객체를 만들기 전까지 ) 는 실제로 class는 존재하지 않습니다.(메모리 할당x)
- 객체는 서로 다른 존재 입니다. -> cal1 과 cal2는 다릅니다.
- 객체에 . 을 찍으면 참조한다는 의미 입니다.
- 클래스에서 변수는 속성, 메서드는 기능을 의미 합니다

예시 2

결과값


틀이 될 class Pen
main이 될 Penmain  만들어주고 main 안에 작성

//Pen의 기능을 사용 하고 싶다면 객체로 생성해야합니다!
 black이라는 객체 생성
   Pen black = new Pen();

black이라는 객체 안에 존재하는 속성( 멤버변수)의 값을 변경해 줍니다.
black.ink = "검정";
black.price = 2000;
black.company = "모나미^^";
black.write();


red라는 객체 생성
     Pen red = new Pen();
red이라는 객체 안에 존재하는 속성( 멤버변수)의 값을 변경해 줍니다.
red.ink = "빨강";
red.price = 3000;
red.company = "하잉테크!";
red.write();

info사용해서 어떻게 다른지 확인
black.info();
red.info();

계산기 만들어서 거기다가 펜값들 넣어봄

===========================================================

 

'Java 공부 > 자바(객체지향문법)' 카테고리의 다른 글

Day09-멤버변수와 지역변수  (0) 2021.08.25