객체와 클래스
- 자바에서 클래스는 객체를 만들기 위한 틀입니다.
- 클래스의 변수는 객체의 속성이고, 클래스의 메서드는 객체의 기능입니다.
왜 우리가 클래스를 사용하는가?
- 공장에서 물건을 생산할 떄 대량생산을 하기위해 틀을 만들고 사용한다.
- 클래스는 이 대량생산을 위한 틀인 것이다
객체 생성 명령
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 |
---|