= 객체와 클래스
자바에서 클래스는 객체를 만들기 위한 틀~
+)수업시간에 선생님이 들어주신 예시로는, 클래스는 붕어빵 틀!이고
객체는 클래스로부터 만들어진 붕어빵으로, 만들어진 붕어빵은 다 다른 것이다.
클래스의 변수는 객체의 속성, 클래스의 메서드는 객체의 기능입니다.
클래스를 사용하는 이유? 틀을 만들어놓고 거기서 나오는 제품들을 대량생산 하기 위해서~
제일 기본적인 예시부터 공부 시작~
package day06;
public class ObjectBasic01 {
public static void main(String[] args) {
//기존에 사용하던 방법.
System.out.println("====1번 계산기====");
System.out.println(add(5));
System.out.println(add(10));
System.out.println(add(3));
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;
}
}
기존에는 이와같이, main method안에 println을 넣어서 원하는 출력값을 꺼내왔다.
같은 기능을 가진 메서드 사용을 위해서 똑같은 메서드를 계속 생성해왔다.
하지만 클래스를 이용한다면?
똑같은 메서드를 반복해서 적을 필요 없이, 클래스를 생성해서 그 안에있는 메서드를 이용하면 된다.
얼마나 훌륭한 방법인가!?
+) 메서드 : 대량 생산틀의 기능
(이름치고 "."을 치고 뒤에 적으면 사용할 메서드 고를 수 있음)
- 클래스
package day06;
public class Calculator {
int result=0;
int add(int a ) {
result+=a;
return result;
}
}
- 메인
package day06;
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));
}
}
- 출력값
실제로는, println을 여러번 써야되서 왜저렇게 써야 하나 생각이 들지만,
복잡한 식으로 넘어가기 시작하면 클래스를 활용하는 방법이 얼마나 쉬운지 깨달을 수 있다.
= 객체 생성 명령
ClassName instanceName = new Constructor();
ex) Variable var = new Variable();
= 클래스 내에 존재하는 것들
- 멤버 변수 (Member Variable): 대량 생산틀의 속성
클래스 안에 생성된 변수로 (초기값이 필요없다는 것이 특징)
ex) String a;
- 지역 변수 (Local Variable)
메서드 안에서 선언된 변수
사용하기 전에 반드시 초기화 해야 함
아래는 멤버,지역,매개 변수 활용하는 예제 )
package day06;
public class Variable {
//초기화 하지 않더라도 기본값으로 자동초기화,(0 0.0 false (String)null)
int a;
void printNumber(int c) {
int b=1;
System.out.println("멤버변수:"+a);
System.out.println("지역변수:"+b);
System.out.println("매개변수"+c);
}
}
package day06;
public class VarMain {
public static void main(String[] args) {
Variable var = new Variable();
System.out.println(var.a);
var.a=100; //변경
var.printNumber(10);
}
}
package day06;
//설계도 클래스
public class Pen {
//멤버 변수 - 클래스의 속성을 나타냅니다.(필드) -> 선언만 하는곳이라 생각하면 편하다
String ink;
int price;
String company;
//ink = "빨강"이런방식은 사용 x -> 매서드 안에서 사용해야함
//매서드 - 클래스의 기능을 나타낸다. (값의 변경도 메서드 안에서)
void write() {
System.out.println(ink+"색상 글씨를 씁니다");
}
void info() {
System.out.println("=====펜의 정보=====");
System.out.println("색상:"+ink);
System.out.println("가격"+price);
System.out.println("제조사"+company);
}
}
package day06;
public class Penmain {
public static void main(String[] args) {
//Pen의 기능을 사용하고 싶다면 객체로 생성해야 합니다!
Pen black = new Pen();
black.ink="검정";
black.price=2000;
black.company="모나미^^";
black.write();
Pen red = new Pen();
red.ink="빨강";
red.price=3000;
red.company="하잉테크";
red.write();
black.info();
red.info();
}
}
= 출력값
'수업 복습하기 > Java' 카테고리의 다른 글
Day 10 - 패키지(Package) (0) | 2021.08.29 |
---|---|
Day 09 - 생성자(Constructor) (0) | 2021.08.26 |
Day 08 - 메서드에서 배열 활용하기 (0) | 2021.08.25 |
Day 08 - 메서드 반환 유형(return type) (0) | 2021.08.24 |
Day 08 - 메서드 매개변수 parameter (0) | 2021.08.24 |