자바는 객체지향 프로그래밍 언어입니다. 그리고 그 중심에는
클래스(class)가 있습니다.
클래스를 이해하면 객체를 만들고 다룰 수 있으며, 코드의 재사용성과 구조적 설계 능력을 갖출 수 있습니다.
학생 2명의 이름, 나이, 성적을 출력하는 프로그램을 만들려면 아래와 같이 각각의 변수를 만들어야 한다.
String student1Name = "학생1";
int student1Age = 15;
int student1Grade = 90;
String student2Name = "학생2";
int student2Age = 16;
int student2Grade = 80;
문제점
배열 도입 후 개선
String[] names = {"학생1", "학생2"};
int[] ages = {15, 16};
int[] grades = {90, 80};
클래스 도입
public class Student {
String name;
int age;
int grade;
}
Student student1 = new Student();
student1.name = "학생1";
student1.age = 15;
student1.grade = 90;
public class 클래스이름 {
// 멤버 변수 (필드)
// 생성자
// 메서드
}
| 구성요소 | 설명 |
|---|---|
| 클래스 이름 | 클래스의 이름. 대문자로 시작하는 것이 관례 |
| 필드(변수) | 객체의 속성 (예: 이름, 나이 등) |
| 생성자 | 객체 생성 시 자동 호출되는 메서드 |
| 메서드 | 객체가 수행할 기능 |
Student student1 = new Student(); // student1은 Student 클래스의 인스턴스
Student student1 = new Student();
new Student() → 메모리에 Student 객체 생성 (예: x001)
student1 변수에 참조값(x001) 저장
student1.name → x001 객체의 name 필드에 접근
자바는 객체 자체가 아니라 객체 참조값(주소)을 저장한다.
Student student = new Student();
student.name = "학생1";
student.age = 15;
student.grade = 90;
student.name처럼 .(dot)으로 객체의 필드에 접근System.out.println(student.name);
학생이 많아질 경우, Student 객체를 배열로 관리할 수 있다.
Student[] students = new Student[2];
students[0] = student1;
students[1] = student2;
출력 예시:
for (Student s : students) {
String result = String.format("이름: %s, 나이: %d, 성적: %d", s.name, s.age, s.grade);
System.out.println(result);
}
지금까지 클래스를 도입하는 이유와 객체 생성 방식, 그리고 배열과 결합하여 데이터를 어떻게 구조화할 수 있는지 배웠습니다.
클래스를 통해 현실 세계의 개념을 코드로 표현할 수 있다는 점에서, 객체지향 프로그래밍의 첫걸음을 떼었다고 할 수 있습니다.
다음 글에서는 객체를 생성할 때 자동으로 호출되는 생성자(Constructor)와
객체의 동작을 정의하는 메서드(Method)에 대해 자세히 알아보겠습니다.