Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

To Dare Is To Do!

클래스를 왜 쓰는지 다시 한번 생각해 보자! 본문

Java

클래스를 왜 쓰는지 다시 한번 생각해 보자!

Nick_Choi 2023. 12. 21. 10:35

먼저 클래스(class)란?

자바에서 객체를 정의하는 설계도의 의미를 가지며 보통 붕어빵(객체 or 인스턴스)를 찍어내는 붕어빵 틀(클래스)에 비유하기도 한다.

여기서 객체는 클래스에서 정의한 속성과 기능을 가진 실체를 의미, 인스턴스는 특정 클래스로부터 생성된 객체를 의미

ex)  Student 클래스를 통해 Student1과 Student2를 만들었다고 가정했을 때, Student1은 Student 클래스의 인스턴스라고 말할 수 도 있으나 Student1은 학생1의 속성을 가지는 객체, Student2는 학생2의 속성을 가지는 객체라고 이야기할 수 도 있다.

결국 클래스에서 나온 실체라는 의미에서 비슷하게 사용되나 바라보는 관점에 따라서 용어상 차이가 존재한다고 할 수 있다.

 

객체가 가지고 있는 속성은 멤버 변수 혹은 필드라고 부른다.

좀 더 깊게 살펴보면 특정 클래스에 소속된 멤버를 멤버 변수, 데이터 항목을 가리키는 용어를 필드라고 부른다.

 

그럼 클래스를 어디에 사용하는가?

타입은 데이터의 종류나 형태를 나타낸다

ex) 정수 타입 int, 문자타입 String

여기서 클래스를 사용한다면 위의 예시와 같은 타입을 직접 정의하여 사용할 수 있으며 타입을 정의하는 설계도가 바로 클래스이다.

 

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);
 }
}

 

위와 같이 String, int 타입의 변수로 관리한다면 학생이 늘어날 때마다 추가적인 변수가 등장하고 출력 코드가 증가하는 등 유지보수에 용이한 형태는 아닐 것이다.

 

하지만 클래스를 사용하여 학생을 정의한다면 위의 코드보다 효과적으로 학생이란 객체를 관리할 수 있을 것이다.

package class1;

public class Student {
 	String name;
 	int age;
 	int grade;
}

 

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;
  }

김영한의 실전 자바(기본편) 강의를 보며 정리한 글입니다!

'Java' 카테고리의 다른 글

인터페이스가 가지는 객체 지향의 특징  (0) 2023.10.21
[java]객체 지향 프로그래밍이란?  (0) 2023.10.20