Java

[인프런] 클래스와 메서드

sejin2 2024. 5. 21. 12:39

클래스는 데이터는 멤버 변수 뿐 아니라 기능 역할을 하는 메서드도 포함할 수 있다 .

public class ValueData {
    int value; 
}

public class ValueDataMain {
    public static void main(String[] args) {
        ValueData valueData = new ValueData();
        add(valueData);
        add(valueData);
        add(valueData);
        System.out.println("최종 숫자 = " + valueData.value);
    }
    static void add(ValueData valueData) {
        valueData.value++;
        System.out.println("숫자 증가 value = " + valueData.value);
    }
}

현재 데이터와 데이터를 증가시키는 메서드가 분리되어 있다. 
자바 같은 객체 지향 언어는 클래스 내부에 속성과 기능을 함께 포함할 수 있다. 클래스 내부에 멤버 변수 뿐만 아니라 메서드도 함께 포함할 수 있다 ! 

public class ValueData {
    int value;

    void add() {
        value++;
        System.out.println("숫자 증가 value = " + value);
    }
}

이 클래스에서는 데이터인 value와 해당 데이터를 사용하는 기능인 add ( ) 메서드를 함께 정의했다. 
여기서 add ( ) 메서드는 static 키워드를 사용하지 않는다. 메서드는 객체를 생성해야 호출할 수 있는데, static이 붙으면 객체를 생성하지 않고도 메서드를 호출할 수 있다. 

public class ValueObjectMain {
    public static void main(String[] args) {
        ValueData valueData = new ValueData();
        valueData.add();
        valueData.add();
        valueData.add();
    }
}

동일한 결과가 나오는 것을 확인할 수 있다. 

인스턴스의 메서드를 호출하는 방법은 멤버 변수를 사용하는 방법과 동일하게 .을 찍어서 객체에 접근한 다음 원하는 메서드를 호출하면 된다.
add( ) 메서드를 호출하면 메서드 내부에서 value++를 호출하게 된다. 이때 value에 접근해야 하는데, 기본으로 본인 인스턴스에 있는 멤버 변수에 접근한다. 본인 인스턴스가 x002 참조값을 사용하므로 자기 자신인 x002.value에 접근하게 된다.
++ 연산으로 value의 값을 하나 증가시킨다.

==> 클래스는 속성과 기능을 정의할 수 있다. 객체는 자신의 메서드를 통해 자신의 멤버 변수에 접근할 수 있으며, 객체 메서드 내부에서 접근하는 멤버 변수는 객체 자신의 멤버 변수이다.

 

 

 

공부 내용: [인프런] 김영한의 실전 자바 - 기본편

'Java' 카테고리의 다른 글

[인프런] 생성자, this  (0) 2024.05.21
[인프런] 객체 지향 프로그래밍  (0) 2024.05.21
[인프런] 절차 지향 프로그래밍  (0) 2024.05.21
[인프런] null과 NullPointerException  (1) 2024.05.20
[인프런] 변수와 초기화  (0) 2024.05.20