제한자 static이 이해가 잘 안가네요...
큰돌찬
class Purse
{
static int money=0;
void printMoney(int in,int out)
{
money=money+in-out;
if(money0)
{
System.out.println((-1*money)+원이 부족합니다);
}
else
{
System.out.println(잔금은 +money+원 입니다);
}
}
}
class Shopping
{
public static void main(String[] args)
{
Purse store1=new Purse();
Purse store2=new Purse(); //static을 사용하여 값을 공유하여 출력한다
store1.printMoney(1000,100);
store2.printMoney(0,250);
store1.printMoney(0,800);
}
} ---------- 실행 ----------
잔금은 900원 입니다
잔금은 650원 입니다
150원이 부족합니다
출력 완료 (0초 경과) - 정상 종료
====================================================================================================
//작성일 : 2008-08-14
//작성자 : 박미영
//프로그램 :제한자
/* static은 필드와 메소드에 붙이는 제한자
같은 클래스에서 생선된 오브젝트들은 static을 붙인 필드의 값을 공유
static 메소드는 오버라딩할수없다 */
class Purse
{
int money=0; //static을 뺏을때의 결과값을확인하기
void printMoney(int in,int out)
{
money=money+in-out;
if(money0)
{
System.out.println((-1*money)+원이 부족합니다);
}
else
{
System.out.println(잔금은 +money+원 입니다);
}
}
}
class Shopping
{
public static void main(String[] args)
{
Purse store1=new Purse();
Purse store2=new Purse(); //static을 안쓰면 값을 공유하지않고 하나하나 따로 계산해서 출력한다
store1.printMoney(1000,100);
store2.printMoney(0,250);
store1.printMoney(0,800);
}
}
대표적인 예이죠 static의...그런데 static이 어떤역할을 하는지 구체적으로 가르쳐주실분...값을 공유한다는데...첫번째예제에서
그럼 900 이 money 에 저장이 되서 그저장된 값을 계속 사용한다는 건가요???두번째예제에서는 static이 없을때는 0의 값을 가지는 것이라는 건가요??
-
고독
static에 관련해서 자바 서적을 보시면 자세히 나와있습ㄴㅣ다..^^
-
널위해
그리고 멤버변수 int는 자동을로 0으로 초기화됩다.
-
주미
static은 제한자가 아닙니다
클래스의 보통 변수는 인스턴스가 생성될때마다 인스턴스 각자가 값을 가지고 있지만 그중 static 키워드는 그 클래스에서가지고 있는 변수가 되어버리기때문에 인스턴스가 몇번이고생성되어도 변수는 가상머신안에 하나밖에 존재하지않습니다. 모든 인스턴스가 그값을 공유하게 되는거지요. 사실 될수있으면 static은 상수 아닌이상 잘 안씁니다.