Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- SpringBoot
- c:if
- frontController
- after-throwing
- MVC
- 유효성검사
- 비즈니스레이어
- @Valid
- 서비스레이어
- springjdbc
- @ResponseBody
- 생성자주입
- gradle
- spring
- @RequestMapping
- @RequestParam
- @
- 의존주입
- 스프링
- jointpoint
- 바인딩변수
- PointCut
- produces
- .xml
- AOP
- Java
- Model
- springmvc
- application.properties
- 어노테이션
Archives
- Today
- Total
메모장
class 변수 , 공유자원 본문
728x90
반응형
package class02;
class A {
int a; // 멤버변수,필드,속성
// 인스턴스 변수
// : 각각의 객체들이 고유한 값을 저장, 객체들끼리 값을 공유 xxxxx
// 멤버변수는 값을 공유하지 않는다
// 클래스 변수는 static 값을 공유 해서 같이 올라간다.
static int b;
// 객체와 무관하게
// 클래스 변수,공유 자원
// : 주인이 클래스라서 객체들끼리 값을 공유 O
void printInfo() {
System.out.println("a= " + this.a);
System.out.println("b= " + this.b);
}
}
public class Test01 {
public static void main(String[] args) {
A a1 = new A();
a1.a = 10;
a1.b = 10;
A a2 = new A();
a2.a = 10;
a2.b = 10;
a2.a++;
a2.b++;
a1.printInfo();
a2.printInfo();
}
}
a= 10
b= 11
a= 11
b= 11
static int b; // 공유자원
// 객체와 무관하게
// 클래스 변수,공유 자원
// : 주인이 클래스라서 객체들끼리 값을 공유 O
실습문제
★ 모래성 놀이 (하나의 큰 모래성을 만들고 순서대로 돌아가면서 모래를 가져가다가 깃발이 넘어지면 지는 게임)
package class02;
// 1. 객체끼리 값을 "공유"하는 경우
// static 붙여서 클래스 변수로 선언
// this xxx
// 2. 객체들로도 배열을 생성할수있음
class Game {
String name; // 모래성게임을 하는 사람이름
static int res=100; // 공유자원. 모래성
Game(String name){
this.name=name;
System.out.println(this.name+"님 참가!");
}
boolean game(int cnt) { // this == 자기자신객체
res-=cnt;
if(res<=0) {
System.out.println(this.name+"님 패배...");
return false;
}
System.out.println(this.name+"님 성공! 남은모래: "+res);
return true;
}
}
public class Test02 {
public static void main(String[] args) {
Game g1=new Game("아리");
Game g2=new Game("아무무");
Game g3=new Game("티모");
Game g4=new Game("소나");
// 객체로 만드는 배열
// : 객체배열
Game[] data=new Game[3];
data[0]=new Game("아리");
data[1]=new Game("아무무");
data[2]=new Game("티모");
int i=0;
while(true) {
if(!data[i++].game(5)) {
break;
}
if(i==data.length) {
i=0;
}
// 첫번째부터 마지막까지 돌아가면서
// 순서대로 게임을 할건데,
// 만약 패배했다면 게임종료
}
}
// if(!data[i++].game(5)) {
break;
} // 아래 조건문들을 합쳐서 이렇게 간단하게 작성할 수 있다 !
// while(true) {
// g1.game(80);// 공유자원이었기 때문에 누가 이미 가져가서 그런것이다.
// if(!g.game(5)) { //졌어 ?
// break;
// }
// g2.game(15);
// if(!g2.game(5)) {
// break;
// }
// g3.game(7);
// if(!g3.game(5)) {
// break;
// }
//while 안에 다른 조건문 안에 break;는 while 의 종료 조건이 안된다.
728x90
반응형
'JAVA > 개념정리' 카테고리의 다른 글
| [상속] Object (0) | 2024.04.06 |
|---|---|
| 상속 (0) | 2024.04.06 |
| 객체 지향 언어 [JAVA] (0) | 2024.04.06 |
| Flag 알고리즘 (0) | 2024.04.06 |
| Random (0) | 2024.04.06 |