public void setData(String dataname, String datavalue)
{
tmpname=dataname;
tmpvalue = datavalue;
}
public static String getData(String dataname)
{
return dataname;
}
이거에서요 dataname을 받으면 String이자나요?
그걸 변수 이름으로 쓸 수 있나요?
그러니까...
String a ="sdf7893";
이라는게 있고
setData(a, "메롱");
이있다면... a를 받아와서 a변수의 값을 메롱으로 변경시킬 수 있나여?
본문질문
String 매게변수로 만든 값을 변수명으로 바꾸어 거기에 매게변수의 값을 집어넣을 수 있느냐
답 : 없습니다. 우회방법으로 key값으로 사용하는 방법이 있습니다만
댓글질문
Global 클래스 내에 전역변수 static public String a = null 하고 Global.a = "asd"; 하면 에러가 나는건
1. Global 클래스를 인스턴스화하지 않았을 때
2. main 메소드 내에 static public String a 를 선언하지 않았을 때
대략 둘중하나네요
static을 쓸때와 private를 쓸 때의 뭐가 더 좋은가 나쁜가는 클래스 내의 변수에 접근을 허가하느냐
static으로 공유를 하느냐의 차이기때문에 뭐가 더 좋다라고 할 수 없네요
상황에 따라 private와 static을 쓰니
기본적인 이야기지만
변수의 이름이라는것은 프로그램을 만들고, 유지 보수하는 단계에서
사람이 읽기 편하기 위한 용도이지 컴퓨터는 변수의 이름이라는것을 사용하지 않습니다.
대부분의 언어에서 컴파일을 하게되면 변수의 이름이라는 값은 상대적인 메모리 주소값으로만 저장되어 더이상 남지 않게됩니다.
즉, 매개변수로 받은값이 소스코드내의 특정 변수이름으로 사용 될 수 없으며
꼭 이와 유사한 구조로 만드셔야 하는 경우에는 associative array와 같은 구조를 가져다가 만드시면 됩니다.
관련된 내용은
Compilers : Principles, Techniques, & Tools // Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman | Addison-Wesley
읽어보시면 되실테고
연관(연상)배열에 대한 내용은 파이썬이나 펄의 예시를 구글에서 찾아보시면 간결하게 잘 표현되어있을거에요




그리고여... 만약 값을 변경해야되면
public static String a=null;
하고나서 Global.a="asd" 하면 에러나잖아요?
그럼 public static으로 하는것보다 Private로 해서 Getter하고 Setter설정하는게 낳지 않나요?