반응형
Class와 인스턴스 생성 및 호출
Class란?
클래스는 설계도, 인스턴스(객체)는 설계도를 통해 만든 물건과 같다고 볼 수 있다.
Class 형태
public class Name {
}
publci 접근 제한자를 활용한 Name 클래스이다.
클래스는 이런 형태를 가지고 있다.
실습
class NoteSetting {
//노트 필드
String color; //노트 색상
int page; // 노트 장 수
// 노트 장 수 증가
void upPage(int value) {
page += value;
}
// 노트 장 수 감소
void downPage(int value) {
page -= value;
}
}
노트 클래스를 완성했다.
노트의 설계도를 만든 것과 같다.
이제 노트의 설계도를 통해 노트를 만들면 그것을 인스턴스(객체)라고 한다.
public class Note{
public static void main(String[]args){
// myNote1 인스턴스 생성
NoteSetting myNote1 = new NoteSetting();
//인스턴스 필드에 값 대입
myNote1.color = "Blue";
myNote1.page = 0;
// myNote2 인스턴스 생성
NoteSetting myNote2 = new NoteSetting();
//인스턴스 필드에 값 대입
myNote2.color = "Red";
myNote2.page = 10;
//메소드 호출하기
myNote1.upPage(10);
System.out.println("1번 노트의 색상은 " + myNote1.color + "색입니다.");
System.out.println("1번 노트의 페이지는" + myNote1.page + "페이지입니다.");
//메소드 호출하기
myNote2.downPage(5);
System.out.println("2번 노트의 색상은" + myNote2.color + "색입니다.");
System.out.println("2번 노트의 페이지는" + myNote2.page + "페이지입니다.");
}
}
myNote1 인스턴스를 생성하고 Blue색상과 0페이지로 지정을 해줬다.
myNote2 인스턴스를 생성하고 Red색상과 10페이지로 지정을 해줬다.
myNote1을 호출해 다음 장으로 10페이지를 넘겨줬다.
myNote2를 호출해 전 장으로 5페이지를 넘겨줬다.
출력을 해보면 1번 노트는 Blue색에 10페이지로 넘어갔고, 2번 노트는 Red 색에 5페이지로 넘어간 것을 확인할 수 있다.
전체 코드는 아래와 같다.
package Study01;
class NoteSetting {
//노트 필드
String color; //노트 색상
int page; // 노트 장 수
// 노트 장 수 증가
void upPage(int value) {
page += value;
}
// 노트 장 수 감소
void downPage(int value) {
page -= value;
}
}
public class Note{
public static void main(String[]args){
NoteSetting myNote1 = new NoteSetting();
myNote1.color = "Blue";
myNote1.page = 0;
NoteSetting myNote2 = new NoteSetting();
myNote2.color = "Red";
myNote2.page = 10;
myNote1.upPage(10);
System.out.println("1번 노트의 색상은 " + myNote1.color + "색입니다.");
System.out.println("1번 노트의 페이지는" + myNote1.page + "페이지입니다.");
myNote2.downPage(5);
System.out.println("2번 노트의 색상은 " + myNote2.color + "색입니다.");
System.out.println("2번 노트의 페이지는" + myNote2.page + "페이지입니다.");
}
}
.java 파일과 .class파일
Note 클래스를 보면 1개의 .java 소스 파일이다.
위에 전체 소스 코드를 확인해 보면 Note 클래스 안에는 Note 클래스와 NoteTest 클래스 이렇게 2개의 클래스가 있다.
Note.java가 실행이 되면서 각 클래스 별로 바이트코드 파일이 생성이 된다.
확인을 해보면 Note.class와 NoteTest.class가 생성이 된 것을 알 수 있다.
무조건 클래스가 개수만큼 .class로 생성이 되는 것은 아니다. 예를 들면 클래스 안에 클래스를 작성하는 내부 클래스는 외부 클래스 1개만 .class로 생성이 된다.
반응형
'프로그래밍언어 > Java' 카테고리의 다른 글
[Java] : 상속 개념과 예시 (0) | 2022.01.16 |
---|---|
[Java] : 인스턴스 변수와 클래스 변수 (0) | 2022.01.15 |
[Java] : Overloading이란? (0) | 2022.01.15 |
[Java] : 파라미터가 있는 생성자 활용하기 (0) | 2022.01.15 |
[Java] : private와 public에 대해서 (0) | 2022.01.14 |
댓글