1 public class MyExp{
2 int base;
3 int exp;
4 int getValue(){
5 int res=1;
6 for(int i=0; i<exp;i++)
7 res = res * base;
8 return res;
9 }
10 public static void main(String[] args) {
11 MyExp number1 = new MyExp(); //MyExp number1클래스 생성
12 number1.base = 2;
13 number1.exp = 3;
14 MyExp number2 = new MyExp();//MyExp number2
15 number2.base = 3;
16 number2.exp = 4;
17 System.out.println("2의 3승 =" +number1.getValue());
18 System.out.println("3의 4승 =" +number2.getValue());
19 }
20 }
여기서 단순히 생각했을땐 답이 나오거든?
근데 MyExp가 전역이라 12,13번째 줄에서 2,3으로 초기화하면 number1에서 바뀌는게 아니고 MyExp에서 바뀌는거아니야?
그럼 15,16역시 MyExp에서 바뀌니까 17,18번째 줄 답이 같아야되는거아니야?
ㄴㄴ 전역 아님
객체라는 개념이 아직 덜 익숙한갑네
전역으로 쓰려면 위에 선언할 때 static int base 이렇게 선언하고 MyExp.base 이렇게 참조함
http://colorscripter.com/
편하게 삽시다....
객체 인스턴스를 했다면 해당 객체마다 공간이 할당되는 것이기 때문에 객체명으로 참조하고 (number1, number2)
자바는 걍 전역 없다고 생각하시길...
그러면 MyExp 메소드 값을 그냥 참조만해서(그대로 복사만해서) number1,number2 인스턴스를 만들어서 그공간에서 연산하고 출력하는거야?
아 형들 고마워 진짜;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;내가 순간 static을 헷갈려했던 븅신이었어 아직 고맙습니다