[Java] 자바 클래스(Class) 사용법(선언, 생성, 사용) & 예제

자바 프로그래밍을 OOP(객체 지향 프로그래밍)이라고도 합니다. 현실 세계에서도 특정 제품을 만들 때 여러 가지 부품들을 각각 만들어 하나로 조립해서 제품을 생산하듯이 프로그래밍적으로도 여러 가지 객체(Object)를 각각 만들어서 하나로 조립하는 프로그래밍 기법을 객체 지향 프로그래밍이라고 합니다. 자바에서 객체는 클래스를 통해 생성하실 수 있습니다.

 

클래스 구조

클래스의 구성 맴버 설명
필드(Field) 객체의 데이터가 저장되는 곳
생성자(Constructor) new 연산자로 호출되는 메소드로 객체 생성 시 필드의 초기화를 담당
메소드(Method) 객체의 동작에 해당하며 클래스의 다양한 동작을 구성

클래스 내부에는 클래스의 속성을 나타내는 필드와 클래스의 동작을 나타내는 메소드 그리고 클래스를 생성할 때 호출할 수 있는 생성자가 있습니다. 생성자는 new 연산자를 통해 호출할 수 있는 메소드라고 생각하시면 되며 주로 필드의 변수들을 초기화하는 역할을 합니다. 

 

 클래스 선언 및 인스턴스 생성 

클래스 선언

class 클래스명{ }
class Student{
    //필드(Field)
    String name; //이름
    int age; //나이
    int korean_scroe; //국어성적
    int math_score; //수학성적
    int english_score; //영어성적
    
    //생성자(Constructor)
    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;
    }
    
    //메소드(Method)
    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);
    }
}

클래스는 위와 같이 class 클래스명{}  와 같은 형태로 만들어주시면 되며 내부에 필드, 생성자, 메소드를 정의하시면 됩니다. 추가로 생성자와 메소드는 오버 로딩이 가능합니다. 이렇게 생성된 클래스는 하나의 객체 설계도라고 생각하시면 되며 이렇게 정의된 클래스를 통해 동일한 객체를 무한정 찍어내실 수 있습니다. 이렇게 찍어낸 객체를 인스턴스라고 합니다.

 

쉽게 생각해서 붕어빵 틀을 클래스, 붕어빵을 인스턴스라고 생각하시면 이해가 쉬울 듯 합니다. 

 

※ 자바 this의 의미가 궁금하시다면 아래 글을 참고해주세요.

[Java] 자바 this의 의미와 사용법

 

[Java] 자바 this의 의미와 사용법

People클래스에 Age필드와 setAge( ) 메소드가 다음과 같이 선언되어 있다고 가정해보겠습니다. public class People{ //필드 int age; //메소드 void setAge(int a){ age = a; } } 위와같이 age에 외부의 값을 입..

coding-factory.tistory.com

 

인스턴스 생성

public class Main {
    public static void main(String[] args) {
    
        //생성자가 없는 경우
        Student student1 = new Student();
        
        //생성자가 있는 경우
        Student student2 = new Student("홍길동", 18, 100, 90, 80);
    }
}

클래스를 통해 객체를 생성하기 위해서는 new 연산자를 사용하시면 됩니다. new 연산자 뒤에는 생성자가 오는데, 생성자는 클래스() 형태를 가지고 있으며 생성자의 여부에 따라 인자 값을 맞춰서 넣으시면 됩니다. 이렇게 new 연산자로 생성된 객체는 힙 메모리 영역에 생성되며 이렇게 만들어진 객체를 해당 클래스의 인스턴스(instance)라고 합니다. 

 

인스턴스 메소드 사용

class Student{
    //필드(Field)
    String name; //이름
    int age; //나이
    int korean_scroe; //국어성적
    int math_score; //수학성적
    int english_score; //영어성적
    
    //생성자(Constructor)
    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;
    }
    
    //메소드(Method)
    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(); //인스턴스 메소드 호출
    }
}

인스턴스를 생성한 뒤 클래스에 정의되어있는 메소드를 호출하려면 위처럼. 를 활용하여 메소드를 호출하시면 됩니다. 

댓글

Designed by JB FACTORY