[JAVA]/┃ⓑ KEYWORDS

[JAVA] 인스턴스 (Instance)

에브리코더 2023. 3. 18. 18:52

안녕하세요! 

오늘은 자바 프로그래밍에서 중요한 개념인 인스턴스(Instance)에 대해 알아보겠습니다. 

클래스와 인스턴스는 객체 지향 프로그래밍의 핵심 개념으로, 이를 이해하는 것이 자바 프로그래밍 능력을 향상시키는데 큰 도움이 됩니다. 실생활 예시를 통해 인스턴스를 자세하고 쉽게 이해해봅시다.

1. 인스턴스(Instance)란 무엇인가?


인스턴스는 클래스를 바탕으로 생성된 객체입니다. 

인스턴스는 클래스의 구조를 따르며, 각각 고유한 속성을 가지고 있습니다. 

인스턴스를 생성하려면 클래스를 먼저 정의해야 합니다. 

인스턴스 생성은 'new' 키워드를 사용하여 이루어집니다.

예시: 도서 클래스 생성하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Book {
    // 속성 (멤버 변수)
    String title;
    String author;
    int price;
 
    // 행동 (메소드)
    void read() {
        System.out.println("Reading " + title + " by " + author + ".");
    }
 
    void applyDiscount(int discount) {
        price -= discount;
    }
}
cs
위의 예시에서는 도서를 나타내는 Book 클래스를 생성했습니다. 이 클래스는 도서의 제목(title), 저자(author), 가격(price) 등의 속성을 갖고 있으며, 도서를 읽는(read) 행동과 할인(applyDiscount)을 적용하는 행동을 정의하고 있습니다.

 

2. 인스턴스 생성하기


클래스를 정의한 후에는 이를 바탕으로 실제 객체(인스턴스)를 생성할 수 있습니다.
예시: 도서 클래스를 이용해 인스턴스 생성하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static void main(String[] args) {
    // 인스턴스 생성
    Book book1 = new Book();
    Book book2 = new Book();
 
    // 속성 설정
    book1.title = "To Kill a Mockingbird";
    book1.author = "Harper Lee";
    book1.price = 15000;
 
    book2.title = "The Great Gatsby";
    book2.author = "F. Scott Fitzgerald";
    book2.price = 12000;
 
    // 행동 수행
    book1.read();
    book2.read();
    book2.applyDiscount(2000);
}
cs
위의 코드에서는 Book 클래스를 바탕으로 두 개의 서로 다른 인스턴스(book1, book2)를 생성했습니다. 각 인스턴스는 서로 다른 속성을 가지고 있지만, 동일한 클래스를 기반으로 만들어졌기 때문에 같은 행동(메소드)을 수행할 수 있습니다.

book1 인스턴스는 "To Kill a Mockingbird"이라는 제목, "Harper Lee"라는 저자, 그리고 15000원의 가격을 갖고 있습니다. 반면에 book2 인스턴스는 "The Great Gatsby"라는 제목, "F. Scott Fitzgerald"라는 저자, 그리고 12000원의 가격을 갖고 있습니다.

인스턴스를 생성한 후에는 해당 인스턴스의 속성에 접근하여 값을 설정하거나 가져올 수 있습니다. 또한 인스턴스의 메소드를 호출하여 행동을 수행할 수 있습니다.

예시 코드에서는 book1 인스턴스의 read() 메소드를 호출하여 "Reading To Kill a Mockingbird by Harper Lee."라는 메시지를 출력했습니다. 또한 book2 인스턴스의 applyDiscount() 메소드를 호출하여 가격에 2000원의 할인을 적용했습니다.

이렇게 인스턴스를 생성하고 사용하는 과정을 통해 클래스를 정의한 후 실제 객체를 만들어 사용할 수 있습니다. 

인스턴스를 사용하면 코드를 재사용하고 유지 보수하기 쉬운 객체 지향 프로그래밍을 구현할 수 있습니다.

이상으로 인스턴스에 대한 설명을 마칩니다. 

인스턴스를 이해하는 것은 객체 지향 프로그래밍의 핵심이므로, 이를 기반으로 자바 프로그래밍 능력을 향상시킬 수 있을 것입니다.