자바 클래스란??
자바 클래스는 다음과 같이 정의할 수 있다.
- 변수(데이터, 속성)와 메서드(행위)를 가지고 있는 집합이다.
- 객체를 생성하기 위한 틀이다.
- 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객체 변수에 대입하게 된다.
'프로그래밍, 언어 > Java초, 중급' 카테고리의 다른 글
자바 메소드란?(Java method) (0) | 2019.09.01 |
---|---|
자바 접근제어자(private, default, protected, public) (0) | 2019.09.01 |
자바 객체지향 프로그래밍이란?(Java OOP Programming) (0) | 2019.08.30 |
자바 배열(Java Array) - 다차원 배열 (0) | 2019.08.29 |
자바 배열(Java Array) (0) | 2019.08.29 |