본문으로 바로가기

자바 클래스란??

 

자바 클래스는 다음과 같이 정의할 수 있다.

  • 변수(데이터, 속성) 메서드(행위) 가지고 있는 집합이다.
  • 객체를 생성하기 위한 틀이다.
  • class키워드로 정의하고, new연산자를 통해서 인스턴스를 생성한다
  • 자바는 클래스들의 모임으로 이루어져 있다.

 클래스에서 객체를 생성하는 과정을 인스턴스화라고 하며, 생성된 객체를 인스턴스라고 한다.

 

예를들어 붕어빵을 만들기 위해서는 붕어빵틀이 필요하다.

여기서 붕어빵틀이 클래스(class)이고 붕어빵틀로 인해 만들어진 붕어빵을 객체(Object)라고 한다.

  • 붕어빵틀 -> 클래스(Class)
  • 붕어빵 -> 객체(Object)

 

소스 기본 골격은 다음과 같다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class fishBread {    // Class키워를 사용하여 정의한다.(Class Name)
    
    private String ingredient = "beans";    //클래스 멤버 변수 정의
    
    public void makeBread() {                //클래스 메서드 정의
        System.out.println("make fishBean Using " + ingredient);
    }
    
    public static void main(String[] args) {
        fishBread fish = new fishBread();    //fish 객체 생성
        fish.makeBread();                    //객체 생성 후 해당 클래스에서 정의한 메서드를 사용할 수 있다.
    }
 
}
 
 

 

위예제 소스와 같이 자바는 변수와 메서드들이 정의된 다수의 클래스들로 이루어져있다.

 

 

1. 객체 변수(Object Variable)

 

객체변수란 클래스 내부에서 선언된 변수를 의미한다.

 

1
2
3
4
5
public class fishBread {        
 
    public String ingredient;
 
}
 
 

 

fishBread클래스에서 선언된 ingredient 객체 변수 이다. 이러한 객체변수는 객체를 선언하고 .연산자를 이용하여 접근할 있다.

 

1
2
3
4
5
6
7
8
9
10
public class fishBread {    
    public String ingredient;
    
    public static void main(String[] args) {
        fishBread fish = new fishBread();
        fish.ingredient = "bean";
 
        System.out.println(fish.ingredient);
    }
}
 
 

 

코드를 실행하면 다음과 같이 대입한 bean이라는 값이 출력된다.

bean

 

 

2. 메소드/메서드(method)

 

클래스 내부에 있는 객체 변수에 . 연산자를 이용하여 접근할 있다. 하지만 이전 챕터에서 말했듯이 객체지향 프로그래밍에서는 캡슐화를 통한 정보은닉을 기본 원칙으로 삼기때문에 직접적으로 객체 변수에 접근하게 코드를 만들지 않는다. 이럴때 사용할 있는 방법이 메소드를 이용하여 변수에 접근하는 방법이다.

(자세한 사항은 https://codehouse.tistory.com/16 확인)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class fishBread {    
    private String ingredient;
    
    public void setIngredient(String ingredient) {
        this.ingredient = ingredient;
    }
    
    public String getIngredient() {
        return this.ingredient; 
    }
    public static void main(String[] args) {
        fishBread fish = new fishBread();
        fish.setIngredient("bean");
 
        System.out.println(fish.getIngredient());
    }
}
 
 

 

예제 소스또한 bean이라는 동일한 결과를 확인 있다.

bean

 

다만 . 연산자를 이용하여 직접적으로 변수에 접근하는것이 아니라, 메서드를 이용하여 값을 초기화 하고, 값을 가져올 있다.

 

메소드에 대해 생소할 있으니 간단한 설명을 해보자면 다음과 같다.

 

setIngredient 메소드

 

1
2
3
public void setIngredient(String ingredient) {
    this.ingredient = ingredient;
}
 
 

 

  • void : 해당 메소드에서는 return(반환 ) 없다.
  • 입력 : String ingredient - 해당 메소드를 호출하기 위해서는 String형의 값을 입력해야 한다.

 

하단 main메소드에서

 

1
fish.setIngredient("bean");
 

 

메소드를 사용하였는데 "bean"이라는 String값을 setIngredient 메소드를 이용하여 ingredient객체 변수에 대입하게 된다.