흔히 객체지향을 강조하면서 클래스를 사용해야 한다고 강조한다. 그렇다면 클래스를 사용하는 이유는 무엇이고 클래스를 사용했을 때 장점은 무엇인가에 대해 한번 알아보자.
간단하게 데이터를 변수에 저장하고 출력하는 코드를 구현해보자.
public Application{
public static void main(String[] args){
String student1Name = "학생1";
int student1Age= 20;
int student1Grade= 90;
String student2Name = "학생2";
int student2Age= 21;
int student2Grade= 85;
}
}
위 방식을 사용하면 코드를 처음 배운 사람도 짤 수 있을만큼 쉽지만, 만약 학생이 추가된다면 이름, 나이, 성적 코드를 새로 작성해야 한다는 단점이 있다. 지금은 변수 종류가 3개여서 추가한다고 쳐도 만약 변수 종류가 20~30개, 학생 수도 수백명에 달한다면 이 방법은 효율적이지 못하다. 이럴 때 사용하는 것이 클래스이다. 아래와 같은 클래스를 정의하자.
public class Student{
String name;
int age;
int grade;
}
그 후 아래와 같이 학생을 정의해주자.
public Application{
public static void main(String[] args){
Student student1 = new Student();
student1.name = "학생1";
student1.age = 20;
student1.grade = 90;
Student student2 = new Student();
student2.name = "학생2";
student2.age = 21;
student2.grade = 85;
}
}
얼핏 보면 아래의 코드가 더 길어보이고 복잡해 보여 지양해야하는 코드 같지만, 사실 그렇지 않다. 우리는 Student라는 클래스를 정의함으로서 데이터를 저장할 틀을 만들었다. 그리고 각 클래스를 새로 정의해줌으로서 메모리에 각자의 변수들을 할당하고, 해당하는 변수들을 학생별로 정의해주었다. 클래스를 정의하지 않은 위의 코드는 학생별로 정의해둔 것처럼 보여도, 실제로는 별개의 6개의 변수를 저장한 것이다. 하지만 클래스를 정의한 아래의 코드는 학생1과 학생2 각각의 변수들을 지정하여 관리하고 있다.
이처럼 클래스를 만들어 관리하면 변수의 관리 측면에서도 유용하다. 위의 사례처럼 클래스를 일종의 '틀'처럼 만들어 필요할 때마다 가져다가 사용하는 것이 바로 '객체지향'이다.