안루피취뽀일기

클래스(Class)란? 본문

Java

클래스(Class)란?

안루피 2023. 9. 12. 22:20
728x90

클래스란?

 

객체 지향 프로그램은 클래스를 기반으로 프로그래밍한다. 클래스는 객체의 속성과 기능을 코드로 구현한 것이다. 객체를 클래스로 구현하는 것을 '클래스로 정의한다'라고 한다. 클래스를 정의하려면 우선 클래스 이름과 클래스가 가지는 속성 또는 특성이 필요하다. 객체를 코드로 구현한다는 말이 잘 이해되지 않을 테니 '학생'이라는 객체를 클래스로 살펴보자.

 

학생 객체를 생각해보면, 먼저 객체를 표현할 클래스의 '이름'이 필요하다. 프로그래밍에서 우리말은 사용할 수 없으니 Student라고 해보자. 이제 학생 객체가 가지는 일반적인 속성을 생각해 보자. 학번, 이름, 학년, 사는 곳 등등이 있다. 이러한 클래스 속성은 특성이라고도 하고 클래스 내부에 변수로 선언한다. 이렇게 선언하는 클래스의 속성을 '멤버 변수'라고 한다.

 

클래스를 정의하는 문법을 간단히 나타내면 다음과 같다.

(접근 제어자) class 클래스 이름 {
	멤버 변수;
    메서드;
}

그러면 학생 클래스를 정의해보자.

package classpart;

public class Student {
	int studentID; //학번
    String StudentName; //학생이름
    int grade; //학년
    String address; //사는 곳
}

클래스를 만들 때는 class 예약어를 사용한다. 그리고 클래스 이름은 Student라고 정한다. { } 안에는 클래스 내용을 구현한다. 프로그램에서 사용할 객체의 속성을 클래스의 변수로 선언한다. 변수로 선언할 때는 각 변수 속성에 맞는 자료형을 사용해야 한다. 또한 자바 프로그램은 모든 요소가 클래스 내부에 있어야 한다. 클래스 외부에는 package 선언과 import 문장 외에 아무것도 선언하지 않는다.

 

클래스 이름 짓는 규칙

 

자바에서 클래스 이름은 대문자로 시작한다. 소문자로 시작한다고 해서 오류가 발생하는 것은 아니나, 대문자로 시작하는 것이 개발자들 사이의 규칙이다. 소셜 컨벤션(Social Convension)이 사회적 관습을 뜻하는 것처럼 코딩 동네에서는 이런 규칙을 코딩 컨벤션(Coding Convension)이라고 한다. 코딩 컨벤션이란 코딩을 할 때 읽기 쉽고 이해하기 쉽도록 정한 규칙이다. '클래스 이름은 대문자로 시작한다'는 것도 그중 하나라고 볼 수 있다. 

 

클래스 속성을 구현하는 멤버 변수

 

Student 클래스를 다시 살펴보면 학생 객체가 가지는 속성(학번, 이름, 학년....)을 변수로 선언했다. 이렇게 클래스 내부에 선언하여 객체 속성을 나타내는 변수가 멤버 변수(member variable)이다. 클래스에서 선언하는 멤버 변수는 다른 말로 속성(property), 특성(attribute) 등으로 표현하기도 한다. 멤버 변수는 속성이 무엇인지에 따라 알맞은 자료형을 선언해 주어야 한다.

 

사람 객체를 구현하는 Person 클래스를 만들면서 멤버변수에 대해 알아보자. 사람 속성은 여러가지가 있다. 이를테면 이름, 나이, 직업, 주소, 키, 몸무게 등이 있다. 코드에서 패키지 생성까지는 그대로 두고 클래스 파일만 추가한다.

package Classpart;

public class Person {
	String name;
    int height;
    double weight;
    char gender;
    boolean married;
}

Person 클래스의 멤버 변수로 이름, 키, 몸무게, 성별, 결혼 여부를 선언했다. 이와 같이 멤버 변수를 선언할 때 int형, double형 같은 기본 자료형(primitive data type)으로 선언할 수도 있고, 또 다른 클래스형으로 선언할 수도 있다. 클래스형이한 다른 말로 객체 자료형 또는 참조 자료형이라고 한다. 참조 자료형으로 사용하는 클래스는 String, Date와 같이 이미 JDK에서 제공하는 것일 수도 있고, 개발자가 직접 만든 Student나 Person같은 클래스가 다른 클래스에서 사용하는 멤버 변수의 자료형이 될 수도 있다.

 

클래스 기능을 구현하는 메서드

 

클래스에서는 학생 객체가 가지는 속성을 사용해 학생과 관련된 기능을 구현할 수 있다. 예를 들어 '학생에게 이름을 부여한다', '학생이 사는 곳을 출력한다.'처럼 말이다. 이렇게 클래스 내부에서 멤버 변수를 사용하여 클래스 기능을 구현한 것을 '멤버 함수(member function)' 또는 '메서드(method)' 라고 한다. 

  • 학생이름과 주소를 출력하는 메서드 만들기
package classpart;

public class Student {
	int studentID; 
    String StudentName; 
    int grade; 
    String address; 
	
    public void showStudentInfo() {
    	System.out.println(studentName + "," + address); //이름, 주소 출력
    }
 }

위 코드를 보면 Student 클래스 안에 showStudentInfo( ) 메서드를 추가했다. 이 메서드는 학생 이름과 주소를 출력하는 기능이다. 

728x90