오늘은 자바 클래스에 대해 설명할 것이다. 클래스에서 포기하는 사람이 절반일 정도로 정말 이해하기 어려운 부분이자 코드의 효율성을 극대화시켜줄 수 있는 영역이 바로 이 클래스이다.

자바에서 클래스는 객체 지향 프로그래밍의 기본적인 개념 중 하나이다.
클래스는 프로그램에서 사용될 객체의 틀을 정의하며, 객체를 생성하기 위한 설계도 역할을 한다고 할 수 있다. (class)

자바는 객체 지향 언어인 만큼, 객체 하나하나를 만드는 것이 중요하다. 그 객체를 만들기 위한 것이 바로 이 클래스이다. 이 클래스 여러개를 만들어 하나의 프로젝트를 만들어 내는 것이다.

class Student{

    String name;
    int age;
    int korean_scroe;
    int math_score;
    int english_score;
    
    Student(String name, int age, int kor_score, int mat_score, int eng_score){
        this.name = name;
        this.age = age;
        this.korean_scroe = kor_score;
        this.math_score = mat_score;
        this.english_score = eng_score;
    }
    
    public void printScore() {
        System.out.println("이름 : " + name);
        System.out.println("나이 : " + age);
        System.out.println("국어성적 : " + korean_scroe);
        System.out.println("수학성적 : " + math_score);
        System.out.println("영어성적 : " + english_score);
    }
}

public class Main {
    public static void main(String[] args) {
        Student student = new Student("홍길동", 18, 100, 90, 80);
        student.printScore();
    }
}

출처: https://coding-factory.tistory.com/864

예시가 너무 좋아 배껴왔다. 클래스의 형태는 위와 같이

class 클래스명 {필드 생성자 매서드}

이다. 클래스의 구성요소로는 필드, 생성자, 매서드로 나눌 수 있다.

- 필드
필드는 저 위에 name, age 와 같이 클래스 전체에서 쓸 변수들을 선언해 놓은거라고 이해하면 된다.

- 생성자
생성자는, 말 그대로 이 클래스를 생성해서 사용하게 해주기 위해 그 틀을 생성해주는 역할이다.
클래스는 객체를 생성하기 위한 설계도라고 했었다. 설계도만 있다고 객체를 만들 수 있는 건 아니기에, 우리가 클래스를 완성하고, 그 클래스를 사용해서 마지막으로 객채를 완성하고 그 객체에 매개변수들을 넣어 설정해주기 위해, 클래스를 사용하기 위한 틀을 만들어 주는 것이 생성자라고 생각하면 된다.

Student(String name, int age, int kor_score, int mat_score, int eng_score){
        this.name = name;
        this.age = age;
        this.korean_scroe = kor_score;
        this.math_score = mat_score;
        this.english_score = eng_score;
    }

이 Student 생성자 안에 이름, 나이, 성적등과 같은 변수들을 매개변수로 두어 옵션을 정할수 있게 했다. 이 클래스를 사용하고 싶다면, 저 생성자에 매개변수만 지정해서 사용하면 된다.

Student student = new Student("홍길동", 18, 100, 90, 80);

이렇게 Student 라는 클래스를 student 라고 줄여서 쓰기로 약속해준 후, new 클래스명(Student) 를 작성해 새로운 Student 라는 클래스 객체를 생성해준다, 그 안 괄호에 홍길동, 18과 같은 그 클래스 객체가 가진 특성에 맞게 매개변수에 값을 지정해주면 된다.

- 매서드
클래스 내에서 사용하는 함수를 만드는 것이라고 생각하면 된다. 매서드에는 함수를 만드는 것이 맞다.

public void printScore() {
    System.out.println("이름 : " + name);
    System.out.println("나이 : " + age);
    System.out.println("국어성적 : " + korean_scroe);
    System.out.println("수학성적 : " + math_score);
    System.out.println("영어성적 : " + english_score);
}

이렇게 printScore() 라는 함수를 만들었다, 이 함수는 이름, 나이 등 과 같은 그 학생의 정보를 전부 출력해주는 함수이다.

student.printScore();

이렇게 매서드의 함수를 사용해주면, 방금 저 위에서 생성해준 student라는 Student라는 클래스를 사용한 객체에 사용한 생성자

Student student = new Student("홍길동", 18, 100, 90, 80);

에 포함된 매개변수들에 맞게 정보들이 printScore 매서드 기능과 맞게 쫙 출력이 될 것이다.

지금까지 말한 걸 요약해 정리해보면, 클래스는 객체 지향 언어 자바에 가장 중요한, 객체를 생성해주기 위해 사용하는 것이다. 클래스를 사용하면 코드의 효율을 크게 올릴 수 있다. 이 클래스는 클래스 전체에서 사용하는 변수들인 필드, 클래스를 사용하기 위해 틀을 만들어주는 생성자, 클래스 내에서 사용할 함수를 만드는 매서드로 구성되어 있다.

이렇게 클래스를 완벽하게 이해할 수 있도록 설명해 보았다. 처음 클래스를 배우고, 코딩을 해보게 되면, 굳이 왜 클래스를 사용하고, 이 말들이 무엇인지 이해가 되지 않을 것이다. 하지만 클래스를 반복해서 사용해보고, 이 글을 여러번 읽어 본다면, 클래스의 개념에 대해 완벽하게 이해되는 순간이 올 것이다. 이 말을 끝으로 포스팅을 마치겠다.

profile
life

0개의 댓글