본문 바로가기
Backend/Java

Java 기초 문법 : 클래스와 객체 그리고 인스턴스

by 코딩쥐 2024. 5. 21.

Java는 객체지향 프로그래밍 언어로 속성(field)과 행위(method)을 하나의 객체로 묶어 구조화된 방식으로 개발한다. Java의 주요 개념은 다음과 같이 구성되어있다.

  • 클래스(Class) : 객체를 생성하기 위한 설계도 
  • 객체(Object) : 속성(field)와 기능(method)을 가지고 있는 개체
  • 인스턴스(Instance) : 클래스로부터 생성된 특정 객체 

 

클래스(Class)

클래스는 객체를 정의해 놓은 설계도로, 객체를 생성하는데 사용한다. 서로 관련된 여러 데이터를 저장하고, 데이터들로 수행할 수 있는 행동(메서드)를 정의해놓는다. 

 

클래스의 구성요소

  • 필드(field) : 클래스의 변수를 의미한다. 객체의 상태를 나타내는 데이터다.
  • 메서드(method) : 클래스의 행위를 나타낸다. 외부로부터 값을 받을 수도, 값을 반환할 수도 있다.
  • 생성자 : 클래스의 객체를 생성하고 초기화하는 역할을 한다. 생성자의 이름과 클래스의 이름이 같아야 한다.
    • 기본 생성자(default constructor)
      : 매개변수가 없는 생성자로, 생성자가 하나도 없을 때 컴파일러가 자동으로 추가함

    • 매개변수가 있는 생성자
      : 매개변수가 있는 생성자는 인스턴스를 생성하는 동시에 원하는 값으로 초기화 할 수 있음

 

클래스 작성법

  • 클래스와 파일의 이름은 동일해야 한다.
  • 클래스 위에는 import할 클래스와 해당 java 파일이 들어있는 패키지 경로를 선언한다. 
  • 클래스 내에는 멤버변수(속성)와 메서드(행위)를 가지며 브레이스({}) 내에 선언이 가능하다.
  • Java의 모든 출발은 main 메서드에서 시작한다.
// java 파일이 들어있는 패키지 경로 선언
package com.example1;

// Example.java 파일 이름과 동일한 클래스 이름
public class Example {
    // 멤버변수 선언
    int a = 10; // 'a'라는 멤버 변수를 10으로 초기화

    // 메서드 선언
    public void printMessage() {
        System.out.println("안녕하세요."); // 메서드가 호출되면 "안녕하세요."를 출력
    }

    // main 메서드
    public static void main(String[] args) {
        // Example 클래스의 객체 생성
        Example example = new Example();

        // 멤버변수 호출
        System.out.println(example.a); // 'a'의 값인 10을 출력
        // 메서드 호출
        example.printMessage(); // 메서드를 호출하여 "안녕하세요."를 출력
    }
}

 


객체(Object)

객체는 속성(field)과 행위(method)를 가지고 있는 개체이다. 모든 인스턴스를 대표하는 일반적인 용어이다. 예를 들어서 TV를 하나의 객체라고 생각해봤을 때, 객체의 속성은 크기와 색상 그리고 행위를 TV를 끈다, TV를 켠다, 볼륨을 올린다, 볼륨을 내린다 등으로 정의할 수 있다. 이 객체를 코드로 작성하면 아래와 같이 작성할 수 있다. 

package com.example1;

public class TV {
    // 속성(field)
    String size; //TV의 크기
    String color; //TV의 색상

    // 생성자
   TV(String size, String color){
        this.size = size;
        this.color = color;
    }

    // 행위(method)
    public void turnOn(){
        System.out.println("티비를 켰습니다.");
    }

    public void turnOff(){
        System.out.println("티비를 껐습니다.");
    }
    public void volumeUp(){
        System.out.println("소리를 올렸습니다.");
    }
    public void volumeDown(){
        System.out.println("소리를 내렸습니다.");
    }
}

 


인스턴스(Instance)

객체의 생성은 new 키워드를 통해서 생성이 가능하며, 이렇게 특정 클래스로부터 생성된 객체를 인스턴스라고 한다. 인스턴스는 여러개 생성이 가능하며, 점 연산자(.)를 통해서 해당 객체의 멤버에 접근할 수 있다. 아래 예제는 위에서 생성한 TV class를 통해 객체를 생성했다. 

package com.example1;

public class Example {
    public static void main(String[] args) {
        // 인스턴스 생성, TV의 경우 size와 color를 매개변수로 받아야 한다.
        TV tvInstance = new TV("50인치", "white");
        System.out.println("TV의 사이즈 : " + tvInstance.size);
        System.out.println("TV의 색상 : " + tvInstance.color);

        // 객체의 메서드에 접근
        tvInstance.turnOn();
        tvInstance.volumeDown();
        tvInstance.volumeUp();
        tvInstance.turnOff();
    }
}