자바의 핵심인 클래스와 객체에 대해 공부를 했고 그 내용에 대해 알아보려 한다.
문제를 보면서 이해해보자!
문제 : 학생 정보 출력 프로그램 만들기
당신은 두 명의 학생 정보를 출력하는 프로그램을 작성해야 한다. 각 학생은 이름, 나이, 성적을 가지고 있다.
1. 변수를 이용한 방법
첫 번째 예제로, 간단한 학생 정보를 출력하는 프로그램을 살펴보자.
- 학생1: 이름 "학생1", 나이 15, 성적 90
- 학생2: 이름 "학생2", 나이 16, 성적 80
- 출력 형식: "이름: [이름], 나이: [나이], 성적: [성적]"
package class1;
public class ClassStart1 {
public static void main(String[] args) {
String student1Name = "학생1";
int student1Age = 15;
int student1Grade = 90;
String student2Name = "학생2";
int student2Age = 16;
int student2Grade = 80;
System.out.println("이름:" + student1Name + " 나이:" + student1Age + " 성적:" + student1Grade);
System.out.println("이름:" + student2Name + " 나이:" + student2Age + " 성적:" + student2Grade);
}
}
위 코드는 직관적이고 간단하지만, 학생 수가 늘어날 때마다 새로운 변수를 추가해야 하는 번거로움이 있다. 이러한 한계를 극복하기 위해 배열을 사용해 보자.
2. 배열을 사용한 개선 방안
학생 정보를 배열로 관리하면, 학생 수가 늘어나도 코드를 크게 변경하지 않아도 된다.
package class1;
public class ClassStart2 {
public static void main(String[] args) {
String[] studentNames = {"학생1", "학생2"};
int[] studentAges = {15, 16};
int[] studentGrades = {90, 80};
for (int i = 0; i < studentNames.length; i++) {
System.out.println("이름:" + studentNames[i] + " 나이:" + studentAges[i] + " 성적:" + studentGrades[i]);
}
}
}
이 방식은 학생 정보를 추가하거나 제거하기 쉬우나, 여전히 한계가 있다. 학생의 정보가 여러 배열에 분산되어 있어 관리가 복잡해질 수 있다.
3. 클래스를 도입한 최종 방법
package class1;
public class Student {
String name;
int age;
int grade;
}
클래스를 사용하면, 학생의 정보를 하나의 단위로 묶어 관리할 수 있다. 이를 통해 코드의 가독성과 관리의 용이성이 크게 좋아진다.
public class ClassStart3 {
public static void main(String[] args) {
Student student1 = new Student();
student1.name = "학생1";
student1.age = 15;
student1.grade = 90;
Student student2 = new Student();
student2.name = "학생2";
student2.age = 16;
student2.grade = 80;
System.out.println("이름:" + student1.name + " 나이:" + student1.age + " 성적:" + student1.grade);
System.out.println("이름:" + student2.name + " 나이:" + student2.age + " 성적:" + student2.grade);
}
}
클래스를 도입하면, 학생의 정보를 직관적으로 표현할 수 있으며, 새로운 학생이 추가될 때도 간단히 객체를 생성하기만 하면 된다. 이처럼 클래스와 객체는 자바 프로그래밍에서 코드의 재사용성과 유지 보수성을 높여준다.
출처 : 김영한 자바 기본편
'Back-end > Java' 카테고리의 다른 글
| [Java - 기본] 객체 사용 (1) | 2024.04.02 |
|---|---|
| [Java - 기본] 클래스 도입 (0) | 2024.04.02 |
| [Java] List, Set, Map 특징 및 차이점 (0) | 2023.11.09 |
| [Java] ==와 equals() 이 무엇이고 어떤 차이가 있을까? (0) | 2023.11.07 |
| [Java] 상속과 인터페이스 개념 및 차이 (0) | 2023.11.03 |