Class
<Fronted>를 어느 정도 진행함에 따라 <Backend> 공부를 병행하려 합니다.
- JAVA 기초 학습
- React를 사용하며 <Fronted> 심화학습
- JAVA 기반 <Backend> 학습
순으로 학습을 진행하겠습니다.
이번에는 JAVA / 객체 지향 프로그래밍의 핵심인 Class에 대해 다뤄보겠습니다.
* 목차
---- Class (1) ----
- 클래스 (Class)
- 생성자 (Constructor)
---- Class (2) ----
- this
- 메소드 (Method)
---- Class (3) ----
- 접근 제한자 (Access Modifier)
- 변수의 타입
1. 클래스 (Class)
Java에서 Class는 객체를 생성하기 위한 청사진입니다.
Class는 멤버 변수와 메서드로 구성됩니다.
클래스는 객체 지향 프로그래밍의 기본 단위이며, 객체를 생성하기 위한 틀로 사용됩니다.
- 객체를 생성하기 위한 틀
- 멤버 변수와 메서드로 구성됨
- 객체 지향 프로그래밍의 기본 단위
public class Car {
// 멤버 변수
String color;
String model;
int year;
// 메서드
void start() {
System.out.println("Engine started");
}
void stop() {
System.out.println("Engine stopped");
}
}
위 코드를 예시로 들어보겠습니다.
Car 클래스는 자동차의 속성(color, model, year 등)을 나타내는 멤버 변수와
자동차가 수행하는 행동(start(), stop() 등)을 나타내는 메서드로 구성될 수 있습니다.
- 멤버 변수 : color, model, year
- 메서드 : start(), stop()
2. 생성자 (Constructor)
생성자(Constructor)는 객체가 생성될 때 호출되는 특별한 메서드입니다. 이 메서드는 객체의 초기화를 담당하며, 클래스로부터 객체가 생성될 때 필요한 초기 설정을 수행합니다.
생성자의 특징
- 생성자의 이름은 클래스의 이름과 동일하다.
- 생성자는 리턴 타입을 가지지 않는다.
- 객체가 생성될 때 한 번만 호출되며, 객체의 초기화를 담당한다.
객체 생성
클래스를 기반으로 객체를 생성하기 위해서는 new 키워드를 사용하여 인스턴스를 생성합니다.
public class Main {
public static void main(String[] args) {
// Car 클래스를 기반으로 객체 생성
Car myCar = new Car();
// 객체의 멤버 변수 설정
myCar.color = "Red";
myCar.model = "Tesla";
myCar.year = 2022;
// 객체의 메서드 호출
myCar.start();
myCar.stop();
}
}
하지만, 이러한 방식으로 객체를 생성하게 된다면 생성한 객체마다 멤버 변수를 하나하나 할당해줘야 하는 번거로움이 있습니다.
때문에 생성자(Consturctor)를 사용하여 더욱 간편하게 객체를 생성할 수 있습니다.
또한 상황에 따라 기본생성자를 사용할 수도 있습니다.
기본 생성자
기본 생성자는 매개변수를 가지지 않는 생성자를 말합니다. 또한 클래스 내에서 명시적으로 정의하지 않아도 자동으로 추가됩니다.
** "객체 생성"의 예시 코드와 같이 명시적으로 정의하지 않아도 됩니다.
public class Car {
String color;
String model;
int year;
// 기본 생성자
public Car() {
// 아무런 초기화 작업이 없음
}
void start() {
System.out.println("Engine started");
}
void stop() {
System.out.println("Engine stopped");
}
}
public class Main {
public static void main(String[] args) {
// 기본 생성자를 이용한 객체 생성
Car myCar = new Car();
// 초기화 작업이 필요 없는 경우에 사용
}
}
- 별다른 초기화 작업이 필요 없는 경우에 편리하게 사용가능
생성자
일반적인 생성자는 매개변수를 가질 수 있습니다. 또한 클래스 내에서 직접 정의해야 합니다.
public class Car {
String color;
String model;
int year;
// 매개변수를 가지는 생성자
public Car(String color, String model, int year) {
this.color = color;
this.model = model;
this.year = year;
}
void start() {
System.out.println("Engine started");
}
void stop() {
System.out.println("Engine stopped");
}
}
public class Main {
public static void main(String[] args) {
// 일반적인 생성자를 이용한 객체 생성
Car myCar = new Car("Blue", "BMW", 2023);
// 초기화 작업을 포함한 객체 생성
}
}
기본 생성자 vs 생성자
차이점
- 매개변수의 유무
- 명시적 정의
장단점
- 편의성
- 기본 생성자는 별다른 초기화 작업이 필요 없는 경우에 편리하게 사용할 수 있다.
- 일반적인 생성자는 초기화 작업이 필요한 경우 사용한다.
- 유연성
- 일반적인 생성자를 사용하면 객체를 생성하고 초기화할 때 다양한 매개변수를 활용할 수 있다.
- 객체의 초기화 상태를 다양하게 설정할 수 있다.
- 초기화 작업
- 기본 생성자는 초기화 작업이 필요 없는 경우 유용하다.
- 일반적인 생성자는 객체의 초기화 작업을 수행할 수 있어 더 많은 유연성을 제공한다.
'Backend' 카테고리의 다른 글
<Backend> Java / Class (3) 접근제한자와 변수의 타입 (0) | 2024.04.04 |
---|---|
<Backend> Java / Class (2) this와 메소드 (0) | 2024.04.04 |
<Backend> Java / Thread (2) (0) | 2023.11.10 |
<Backend> Java / Thread (1) (2) | 2023.11.09 |
<Backend> Java / Generic 예제문제 2 (3) | 2023.11.08 |