객체를 만들기 위한 설계도
클래스는 구현하고자 하는 객체의 속성과 기능들을 정의하는 설계도
따라서, 속성은 변수로, 기능은 메서드(함수)로 나타낸다.
클래스명은 앞 글자를 대문자로 적는다.
class 클래스명{
속성(변수)
기능(메서드)
}
자료형 참조변수 = new 클래스명();
→ 클래스로 객체 값을 만들 메모리를 할당하고, 객체값을 생성해서, 변수에 저장한다.
* 참조변수: 클래스로 생성된 객체 값(인스턴스) 저장할 공간
* new: 메모리 할당
* 클래스명(): 클래스로 객체를 만들어라
* 객체 내 변수를 사용하는 방법: 객체변수.메서드명
public static void main(String[] args) {
//변수=객체값;
//클래스명 참조변수 = new 클래스명();
ClassA ca = new ClassA();
System.out.println(ca.x);
}
}
class ClassA{
int x=10;
void f1() {
System.out.println("f1()");
}
}
public static void main(String[] args) {
Car myCar = new Car();
System.out.println("시동 처음 초기화:"+myCar.powerOn);
System.out.println("차 색상 초기화:"+myCar.color);
System.out.println("바퀴의 수 초기화:"+myCar.wheel);
System.out.println("속력 초기화:"+myCar.speed);
System.out.println("와이퍼 작동 초기화:"+myCar.wiperOn);
myCar.power();
System.out.println("시동 메서드 동작:"+myCar.powerOn);
myCar.power();
System.out.println("시동 메서드 다시 동작:"+myCar.powerOn);
myCar.color="black";
System.out.println("현재 차의 색상:"+myCar.color);
}
static class Car{
boolean powerOn;
String color;
int wheel;
int speed;
boolean wiperOn;
void power() {powerOn=!powerOn;} // true → false, false → true
void speedUp() {speed++;}
void speedDown() {speed--;}
void wiper() {wiperOn=!wiperOn;}
}
}
클래스는 객체를 만드는 틀이므로, 여러 개의 값을 만들 수 있다.
public static void main(String[] args) {
Car myCar1 = new Car();
Car myCar2 = new Car();
myCar1.color = "red";
myCar2.color="black";
myCar1.speedUp();
myCar2.wiper();
System.out.println("myCar1의 색: "+myCar1.color);
System.out.println("myCar2의 색: "+myCar2.color);
System.out.println("myCar1의 속도: "+myCar1.speed);
System.out.println("myCar2의 속도: "+myCar2.speed);
System.out.println("myCar1의 와이퍼 작동여부: "+myCar1.wiperOn);
System.out.println("myCar2의 와이퍼 작동여부: "+myCar2.wiperOn);
}
static class Car{
boolean powerOn;
String color;
int wheel;
int speed;
boolean wiperOn;
void power() {powerOn=!powerOn;} // true → false, false → true
void speedUp() {speed++;}
void speedDown() {speed--;}
void wiper() {wiperOn=!wiperOn;}
}
}