자바 클래스

장원재·2025년 1월 3일
0

java

목록 보기
16/19

클래스가 필요한 이유

만약에 내가 여러명의 학생 정보를 출력하는 프로그램을 작성한다고 해보자. 이때 각 학생은 이름, 나이, 성적을 가지고 있다. 만약에 클래스가 없다면 배열을 이용해서 정보를 표현할 것이다.

String[] studentNames = {"학생1", "학생2"};
int[] studentAges = {15, 16};
int[] studentGrades = {90, 80};

만약에 정보가 추가된다면, 각 배열에 정보를 기입해주면 된다. 이때 데이터를 변경한다면 어떻게 될까? 정확하게 N번째 학생의 성적을 변경한다고 할 때 실수의 여지가 매우 높다. 즉, 사람이 관리하기에 좋은 코드라고 할 수 없다. 이러한 문제르 해결해주는 것이 바로 클래스이다.

클래스의 도입

public class Student {
    //맴버 변수 혹은 필드라고 부른다
    String name;
    int age;
    int grade;
}
  • 맴버 변수에 name age grade 를 정의했다. 그리고 이를 활용한 실제 사용은 아래와 같다.
public class ClassStart1 {
    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;
    }
}
  • 학생 한명당 하나의 클래스를 만들어서 관리를 한다. 이렇게 되면 1번 학생의 성적이 변동이 생겼을 때는 단순하게 student1.grade = 70 처럼 정확하게 변경해줄 수 있다.

  • 타입은 데이터의 종류나 형태를 나타낸다. int이면 정수 타입, String 이면 문자 타입이다. 이때 Student 라는 사용자 정의 타입을 만든 것이다. Student 라는 정의 타입을 만들려면 설계도가 필요한데, 이 설계도를 클래스 라고 한다.

설계도인 클래스를 사용해서 실제 메모리에 만들어진 실체를 객체 또는 인스턴스라 한다.

소스 코드 분석

  • int는 정수를 String은 문자를 담을 수 있듯이, StudentStudent 타입의 객체(인스턴스)를 받을 수 있다.

  • 객체를 사용하려면 먼저 클래스를 기반으로 객체를 생성해야 한다.

  • new Student()Student 클래스 정보를 기반으로 새로운 객체를 생성하라는 뜻이다. 이렇게 하면 메모리에 실제 Student 객체를 생성한다.

  • Student 클래스는 String name int age int grade 멤버 변수를 가지고 있는데, 이 변수를 사용하는데 필요한 메모리 공간도 함께 확보한다.

  • 마지막으로 객체가 생성되면 해당 객체에 접근할 수 있는 참조값(주소)를 반환한다. 반환된 참조값을 Student student1 변수에 저장하고, 이 student1 의 참조값을 이용해서 객체에 접근할 수 있다.

인스턴스 vs 객체

둘다 클래스에서 나온 실체라는 의미에서 비슷하게 사용되지만, 용어상 인스턴스는 객체보다 좀 더 관계에 초점을 맞춘 단어이다. 모든 인스턴스는 객체지만, 우리가 인스턴스라고 부르는 순간은 특정 클래스로부터 그 객체가 생성되었음을 강조하고 싶을 때 이다. 예시로 studnet1 은 객체이지만, 이 객체가 Student 클래스로부터 생성되었다는 점을 명확히 하기 위해서 student1Studnet의 인스턴스라고 부른다.

profile
데이터 분석에 관심있는 백앤드 개발자 지망생입니다

0개의 댓글

관련 채용 정보