클래스를 알아봅시다! #2 😉
클래스에서 static 사용법을 알아봅시다!
[ 자바 클래스 링크 ]
1. [JAVA] 클래스의 모든 것 #1 - 클래스의 개념과 용도
public class MyUtil {
// static 필드
public static String version;
//static 메소드
public static void send() {
System.out.println("전송합니다.");
}
}
MyUtil이라는 클래스를 만들어줍니다.
MyUtil 클래스 안에는 static 필드인 version과 static 메소드인 send를 구현해주었습니다.
이제 main에서 호출법을 알아봅시다!
//MyUtil 클래스의 static 필드 참조해서 값 대입해보기
MyUtil.version="1.0";
//MyUtil 클래스의 static 메소드 호출하기
MyUtil.send();
원래 클래스의 호출은 new로 객체를 만들어서 사용해야합니다.
하지만 static으로 생성된것은 static 영역에 따로 저장되어있기 때문에 객체를 생성하지 않아도 사용할 수 있습니다.
다른 예제를 보면서 다시 알아봅시다!
package test.mypac;
public class DarkTemplar {
//필드
/* [체력]
*
* 필드명 : hp
* data type : int
* non static
*/
public int hp=80;
/*
* [공격력]
*
* 필드명 : damage
* data type : int
* static
*/
public static int damage=40;
//메소드
//공격하는 메소드
public void attack() {
System.out.println(DarkTemplar.damage+" 의 공격력으로 공격합니다." );
}
//움직이는 메소드
public void move() {
System.out.println(this.hp+" 체력의 다크 템플러가 움직여요");
}
}
DarkTemplar라는 클래스를 생성하여주었습니다. DarkTemplar는 게임안의 공격유닛인데 이 각각의 객체들의 체력은 같아야지만 공격력 업그레이드는 다같이 이루어져야하기때문에 데미지 필드는 static으로 만들었습니다.
DarkTemplar dark1 = new DarkTemplar();
DarkTemplar dark2 = new DarkTemplar();
//dark1의 체력을 10 감소 시키기
dark1.hp-=10;
//감소시킨후 move()
dark1.move(); dark2.move();
//다크템플러의 공격력을 10증가
DarkTemplar.damage+=10;
dark1.attack();
dark2.attack();
main에서 클래스를 사용하여봅시다.
dark1, dark2라는 객체를 만들어 주었습니다. 체력은 각각의 객체마다 따로 감소시키는 것을 볼 수 있습니다.
move 메소드도 static이 아니기 때문에 각각 따로 실행하는 것을 볼 수 있습니다.
demage필드는 static 영역에 있기때문에 DarkTemplar.demage를 사용합니다.
'Languages > JAVA' 카테고리의 다른 글
[JAVA] 클래스의 모든 것 #4 - 생성자 (Constructor) (0) | 2021.11.03 |
---|---|
[JAVA] 클래스의 모든 것 #3 - 클래스의 this (0) | 2021.11.03 |
[JAVA] 클래스의 모든 것 #1 - 클래스의 개념과 용도 (0) | 2021.11.02 |
[JAVA] 연산자 사용법 (0) | 2021.11.02 |
[JAVA] 자바 자료형 알아보기 #4 - char, String (0) | 2021.11.02 |