[Java] 클래스

김제현·2024년 1월 7일

Java

목록 보기
2/13
post-thumbnail

클래스가 필요한 이유

  • 배열을 사용해서 코드 변경을 최소화할 수 있지만 데이터를 수정, 변경하는 데 관리의 용이성에 의해 클래스가 필요하다.

클래스

  • class 키워드를 사용해서 학생 클래스( Student )를 정의한다. 학생 클래스는 내부에 이름( name ), 나이( age ), 성 적( grade ) 변수를 가진다.

  • 이렇게 name, age, grade 변수들을 클래스에 정의한 변수들을 멤버 변수, 또는 필드라 한다.
    멤버 변수(Member Variable): 이 변수들은 특정 클래스에 소속된 멤버이기 때문에 이렇게 부른다.
    필드(Field): 데이터 항목을 가리키는 전통적인 용어이다. 데이터베이스, 엑셀 등에서 데이터 각각의 항목을 필드 라 한다.
    자바에서 멤버 변수, 필드는 같은 뜻으로 클래스에 소속된 변수를 뜻한다.

  • 클래스는 관례상 대문자로 시작하고 낙타표기법을 사용

package class1;

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

클래스와 사용자 정의 타입

  • 타입은 데이터의 종류나 형태를 나타낸다. int 라고 하면 정수 타입, String 이라고 하면 문자 타입이다.
  • 클래스를 사용하면 int , String 과 같은 타입을 직접 만들 수 있다.
    사용자가 직접 정의하는 사용자 정의 타입을 만들려면 설계도가 필요하다. 이 설계도가 바로 클래스이다. 설계도인 클래스를 사용해서 실제 메모리에 만들어진 실체를 객체 또는 인스턴스라 한다. 클래스를 통해서 사용자가 원하는 종류의 데이터 타입을 마음껏 정의할 수 있다.

3. 클래스 & 객체 = 인스턴스

클래스는 설계도이고, 이 설계도를 기반으로 실제 메모리에 만들어진 실체를 객체 또는 인스턴스라 한다. 둘다 같은 의미로 사용된다.
여기서는 학생( Student ) 클래스를 기반으로 학생1( student1 ), 학생2( student2 ) 객체 또는 인스턴스를 만들었 다.

package class1;

public class ClassStart3 {
    public static void main(String[] args) {
        Student student1;
        student1 = new Student();

        student1.name = "철수";
        student1.age = 20;
        student1.grade = 90;

        Student student2 = new Student();

        student2.name = "영희";
        student2.age = 22;
        student2.grade = 92;
    }
}

  • 객체를 생성하면 자바는 메모리 어딘가에 있는 이 객체에 접근할 수 있는 참조값(주소)( x001 )을 반환한다. 여기서 x001 이라고 표현한 것이 참조값이다. (실제로 x001 처럼 표현되는 것은 아니고 이해를 돕기 위한 예시이다.)
    new 키워드를 통해 객체가 생성되고 나면 참조값을 반환한다. 앞서 선언한 변수인 Student student1 에 생 성된 객체의 참조값( x001 )을 보관한다.
    Student student1 변수는 이제 메모리에 존재하는 실제 Student 객체(인스턴스)의 참조값을 가지고 있 다.
    student1 변수는 방금 만든 객체에 접근할 수 있는 참조값을 가지고 있다. 따라서 이 변수를 통해서 객체 를 접근(참조)할 수 있다. 쉽게 이야기해서 student1 변수를 통해 메모리에 있는 실제 객체를 접근하고 사용할 수 있다.

참고

김영한 - 실전 자바

0개의 댓글