객체
Java에서 설계도가 Class(붕어빵 틀)
Class로 만든 객체가 인스턴스(붕어빵)
객체 생성과 클래스 변수
Class A를 만듬
public class A{
}
Class A로 Class A_Test내에
Class A 변수를 생성
public class A_Test{
A a = new A();
}
A(붕어빵 틀)
a(붕어빵)
클래스 변수 = new 클래스();
Class의 구성 멤버
public class ClassName{
int fild;//필드
ClassName(){};//생성자
void method(){};//메소드
}
필드
필드는 생성자와 메소드 전체에서 사용되며
객체가 소멸되지 않는 한 객체와 함께 존재
생성자
new연산자로 호출되는 블록
객체 생성 시 초기화 담당
필드를 초기화 하거나 메소드를
메소드를 호출해서 객체를 사용할 준비
생성자는 클레스 이름으로 되어있음
메소드
객체의 동작
필드를 읽고 수정역활 또는
객체간의 데이터를 전달하는 수단
예시
public class Car{
//필드
String model;
//생성자
Car(){};
Car(String model){
this.model=model;
}
//메소드
void getModel(String model){
this.model=model;
}
}
필드
public class CarTest{
public static void main(String[] args){
Car myCar = new Car();
myCar.model="내차";
System.out.println(myCar.model);
}
}
Class Car로 myCar객체를 생성
myCar로 Car 클래스의 필드 접근
위에 Car 클래스 코드를 보면
생성자와 메소드에서도 필드를 접근 가능하다
생성자
필드설명에 있는
Car myCar = new Car();
에서
new Car();로 객체 생성
예시 코드에
Car(String model){this.model=model};로
생성자를 만들었기 때문에
기본생성자인
Car(){};는 자동생성이 안됨
그래서 기본생성자를 만들어 줘야함
메소드
public class CarTest{
public static void main(String[] args){
Car myCar = new Car();
myCar.getModel("내차");
System.out.println(myCar.model);
}
}
필드 설명에 있는 코드와 별반 다를게 없어보이지만
필드코드는 객체의 필드를
직접 값을 변경했지만
메소드의 코드는 Class의 메소드를 이용해서
객체의 필드 값을 수정해 줌
필드코드와 메소드코드의 결과는 동일