자바 공부 13 : 클래스

친환경 개발자
|2024. 1. 31. 22:20

 

클래스란?

 

클래스는 객체를 생성하기 위한 틀 혹은 설계도이다.

 

Animal이라는 클래스를 만든다고 하면, 

 

동물의 종, 색상, 성별, 나이 등의 다양한 속성들을 가지고 있다.

 

이러한 속성들은 클래스 내에서 변수와 메서드로 정의된다.

 

이 Animal 클래스를 기반으로 만들어진 '동물'이 바로 객체이자 인스턴스라고 한다.

 

 

 

 

클래스와 객체

Animal 클래스를 기반으로 cat이라는 새로운 변수를 생성한다.  >>  Animal cat = new Animal();

 

이때 cat이 바로 "객체"가 된다.

 

그리고 "Animal이라는 클래스의 인스턴스"라고도 부른다.

 

cat, dog, horse 등 다양한 객체들을 Animal 클래스로 만들 수 있다.

 

 

 

 

객체 변수

Animal 클래스 영역에 선언하는 변수를 객체 변수라고 한다.

 

같은 말로 인스턴스 변수, 멤버 변수, 속성 이라고도 한다. 

 

객체변수를 호출하거나 접근하려면  도트 연산자(.)를 이용해야 한다.

 

< 객체. 객체변수

   ex) System.out.println(cat.name);

 

 

 

 

메서드

메서드란 클래스 내에 구현된 함수를 말한다.

 

클래스에 쓰일 속성을 만드는 방법 중 메서드를 이용하는 방법이 있다.

 

생성한 Animal 클래스 내에 특정 기능을 하는 메서드(함수)를 추가해 두면,

 

추후 객체와 속성을 지정할 때 해당 메서드를 호출하여 간편하게 이용할 수 있다.

 

이름을 지정하는 메서드를 만들 때

 

public void setName(String name) {

    this.name = name;

}

 

이렇게 만들어 두면,

 

추후 cat이라는 객체를 생성하고 이름을 지을 때

 

cat.setName("geun"); 

 

이렇게 메서드를 호출해 주면 바로 이름을 부여해 줄 수 있다.

 

이때 this는 Animal 클래스에 의해 생성된 객체를 지칭한다.

 

 

객체 변수는 공유되지 않는다

클래스의 존재 이유, 클래스에서 가장 중요한 부분!

 

객체마다 고유의 객체변숫값을 부여할 수 있다!

 

 

 

 

 

 

 

 

/* 5-2 클래스
 클래스는 과자틀, 객체는 과자!
 */
class Animal {          // 클래스 생성
    String name;    // 클래스에 선언된 변수 : "객체변수 = 인스턴스변수 = 멤버변수 = 속성"

    public void setName(String name) {    // 메서드 생성
        this.name = name;   // this : 해당 클래스의 객체(cat) 의미함
    }
}

public class Day12 {
    public static void main(String[] args) {
        Animal cat = new Animal();    // cat은 객체이자 Animal 클래스의 인스턴스다.
        System.out.println(cat.name);   // 객체.객체변수 형태로 접근 ; null 출력

        cat.setName("boby"); // 객체.메서드명 : 메서드 호출
        System.out.println(cat.name);

        Animal dog = new Animal();

        dog.setName("happy");
        System.out.println(cat.name);
        System.out.println(dog.name);
    }
}