Work/Java

[Head First Java] 2. 클래스와 객체

kevin. 2007. 7. 12. 11:21

 책에서는 Chapter 2까지 겨우 왔을 뿐인데.. 너무 많은 이야기를 하고 있어요..

상속, 메소드 오버라이드, 캡슐화, 인스턴스 변수 까지.. 물론 맛보기 일테지만 처음 보시는 분을 헷갈려 하실것 같아서..

전 그런 부분을 요번에는 다루지 않습니다. 추후에 관련 파트에서 다루도록 하지요..


그럼 클래스와 객체가 무엇일까요?

쉽게 말하자면.... 붕어빵 드셔본적 있으시죠?

클래스는 붕어빵 틀이구요.. 객체는 붕어빵입니다. ^^ 더 어렵나요?

그럼 좀 풀어서 써볼께요..


클래스는 무엇을 만들고자하는 틀을 말합니다. 그 자체로는 어떻게 사용할 수 가 없어요..

(물론 뒤에 정적(static) 메소드/변수를 배우면 사용할 수 있어요~ 이건 지금 생각않으셔도 됩니다. )

클래스는 딱 두가지를 가지고 있는데,

하나는 이 클래스를 통해 하고자 하는 일 (메소드)

하나는 이 클래스를 통해 저장해야 하는 것 (인스턴스 변수)  가 그것입니다.

아래 코드를 한번 살표볼께요..


  1. [Music.java]
  2. public class Music {
  3. String artist;
  4. String title;
  5. public void setArtist(String name) {
  6. artist = name;
  7. }
  8. public void setTitle(String songName) {
  9. title = songName;
  10. }
  11. public void printInfo() {
  12. System.out.println("artist = "+artist);
  13. System.out.println("title = "+title);
  14. }
  15. }

음악 클래스입니다.

이 음악 클래스는 가수의 이름을 저장할 artist 변수와 노래의 제목을 저장할 title 변수를 가지고 있습니다.

그리고 가수의 이름을 저장하는 setArtist 메소드와 노래의 제목을 저장하는 setTitle메소드 그리고 저장된 가수의 이름과  노래의 제목을 출력해주는 printInfo라는 메소드를 가지고 있구요..

여기서 artist, title이 이 클래스를 통해 저장해야 하는 것(인스턴스 변수:나중에 알아볼거에요..그냥 인스턴스가 붙는다고 알고만 계세요)가 되구요..

setArtist, setTitle, printInfo가 이 클래스를 통해 하고자 하는 일(메소드)가 됩니다.

즉, Music 클래스는 가수의 이름과 곡 제목을 저장하고 출력해주는 일을 하게 되겠네요..


그런데 이렇게 틀만 있으면 어떻게 써먹을까요..

붕어빵 틀만 있다고 붕어빵을 먹을 수 있는건 아니자나요.. 붕어빵을 만들어야 겠죠?

즉, 클래스를 통해 객체를 생생해 내야 하는 것이죠.. 이런 과정을 인스턴스화 한다고 합니다.


객체를  생성하기 위해서는 new 라는 키워드를 사용합니다. 아래와 같이요..


  1. Music music = new Music();

아주 쉽죠? 이렇게 하면 Music 클래스 틀에서 Music 객체가 생성됩니다.

이후에 우리는 music 이라는 레퍼런스 변수(변수의 종류에대해 다음에 다룰때 알려드릘께요. 오늘은 그냥 변수라고만 알고 계시면 됩니다.)를 통해 artist, title, setArtist, setTitle, printInfo를 사용할 수 있습니다.

대충 감이 잡히시나요? 간단한 아래의 코드를 살펴보세요..


  1. [MusicAlbum.java]
  2. public class MusicAlbum {
        public static void main(String[] args) {
            Music music = new Music();
  3.         music.setArtist("Avril");
            music.setTitle("GirlFriend");
  4.         music.printInfo();
        }
    }

실행결과는 아래와 같습니다.


  1. artist = Avril
  2. title = GirlFriend

그럼 다음에는 변수 이야기를 해볼께요 ...

이 글은 스프링노트에서 작성되었습니다.