객체와 클래스
소프트웨어에서 객체를 만들기 위해서는 설계도에 해당하는 클래스가 필요하다. 클래스를 토대로 생성된 객체를 해당 클래스의 ‘인스턴스’라고 부르며 이 과정을 ‘인스턴스화’라고 부른다.
클래스를 직접 만들어보고, 인스턴스화까지 해보자.
클래스 만들기
클래스 만드는 법
1. 클래스 선언
2. 속성(필드) 정의
3. 생성자 정의
4. 메서드 정의
처음에 필요한 필드와 메서드 구조를 다 짜두고
짠 구조에 맞게 클래스 내부에 주석 다 적어두고
package week03;
public class Car {
//필드영역
String company; //자동차 회사
String model; // 자동차 모델
String color; // 자동차 색
double price; //자동차 가격
double speed; //자동차 속도
char gear; //자동차 기어 (P D R N)
boolean lights; //자동차 불빛 상태
//생성자영역 : 처음 객체가 생성될 때(instance화) 어떤 로직을 수행해야 하며, 어떤 값이 필수로 들어와야 하는지 정의
public Car() {
//logic
//기본 생성자 : 생략 가능
}
//메서드영역
// gasPedal
// input : kmh
// output : speed
// brakePedal
// input : x
// output : speed
// changeGear
// input : gear(char type)
// output : gear
// onOffLight
// input : x
// output : lights(boolean)
// horn
// input : x
// output : x
}
시작하는 방식이 좋겠다.
참고로, 클래스에 생성자가 아무것도 없다면 컴파일러가 자동으로 기본 생성자를 추가해주지만, 생성자가 하나라도 있다면 기본 생성자를 추가해주지 않는다.
이번엔 만든 클래스를 main 파일에서 인스턴스화해보자.
package week03;
public class Main {
public static void main(String[] args) {
Car car1 = new Car(); //new 명령어로 생성자를 생성하여 Car 클래스의 객체인 car1 인스턴스 생성
Car car2 = new Car(); // 인스턴스 2
//객체는 참조형 변수와 같기때문에 클래스 배열도 만들 수 있음.
Car[] carArray = new Car[2];
carArray[0] = car1;
carArray[1] = car2;
car1.changeGear('N');
car2.changeGear('P');
for (Car car : carArray){
System.out.println(car.gear);
}
}
}
추가적으로 클래스는 배열로도 사용가능하다. 객체는 참조형 변수와 동일하게 취급되기 때문에 배열 또는 컬렉션에도 저장하여 관리할 수 있다.
한번 더 리마인드 합시다.
클래스 = 설계도
'개발 > Java' 카테고리의 다른 글
[Java] 메서드 오버로딩 VS 오버라이딩 (0) | 2024.04.23 |
---|---|
[Java] 가변 길이의 매개변수를 사용해 메서드 선언하기 (0) | 2024.04.23 |
[Java] 길이와 관련된 함수들 (length, length(), size()) (0) | 2024.04.23 |
[Java] Switch문에서 케이스 지역변수 선언 (0) | 2024.04.23 |
[Java] do while과 비슷한 기능을 하는 로직 (0) | 2024.04.23 |