public class Global extends Application인 global 클래스가 있습니다
거기서 변수들을 선언하고 getter setter 설정했고요...
근데 private static은 getter setter 로만 액세스 가능인가요?
void onCreate(){
//이부분//
}
위에 표시한 부분에(저건 Global.class안에 있는 겁니다...)
변수들 값을 onCreate안에서 설정해 줬는데요... 문제 없겠죠?
그리고 마지막으로... getter은 data라는 변수로 얘기하자면
Private static String data;
public [static] String getdata() {
return data;
}
public void setdata(String data) {
this.data = data;
}
저기에 [ ] 표시한 static이 들어가야하나요?
마지막으로 Application을 상속하면 findViewById는 못쓰나요?
좀 두서없는 글이 되었네요
정리하자면
1. private static변수는 다른 클래스에선 직접 접근 못하고 getter setter로 간접적으로만 접근하나요?
2.Application을 상속하는 클래스안의 onCreate() 메소드에서 변수 설정해줄때 같은 클래스니까 setter 필요없나요?
3.public static String getdata(){}인가요 public String getdata(){}인가요?(static아니면 다른 클래스에서 접근 못하는걸로 알고있는데...맞나요?)
4.EditText receivedtxt=(EditText) findViewById(R.edittxt)이런건 Activity클래스 내에서 해줘야 하나요?




전반적으로 접근제어자와 static에 대한 이해가 필요할 것 같습니다.
1. static은 클래스변수이고 getter, setter는 메서드를 말씀하시는 것 같은데.. 메서드에도 static이 붙을 수 있습니다.
일단 private이기 때문에 다른 클래스에서 접근이 불가능 합니다. 그리고 static변수이기 때문에 public static으로 변경하여 접근이 용이하게 하시거나 public static 메서드를 이용해서 변수를 전달할 수 있습니다. 보통의 경우는 상수로 사용하기 위해서 변수를 public static 으로 사용합니다. 싱글톤을 사용하는 경우에는 private static을 사용합니다.
2. 그 클래스 안에서만 사용하는 변수라면 굳이 setter가 필요없습니다.
setter / getter는 타 클래스에서 private 으로 가려놓은 변수에 접근하기 위함입니다.
간단하게나마 캡슐화 은닉화를 공부해보세요..
3. java 초반에 정말 많이 쓰는 System.out.println(); .. static 메서드 입니다.
그리고 많이 사용하는 Random rnd = new Random(); .. instance 입니다.
int rndNum = rnd.nextInt();
왜 이렇게 사용하는지 차이점은 직접 공부를 해 보셔야 할 것 같네요..
4. Activity가 아니어도 상관없습니다.
findViewById가 엑티비티메서드이긴 하지만
Activity에 있는 Context를 넘겨줘서 다시 (Activity)context 캐스팅하시면 됩니다.
layoutinflater도 알아보세요..
그 외에도 다양한 방법이 있습니다.
*일반적인 변수와 static 변수의 컴파일 시점과 메모리 접근 차이를 자세히 보시면 전반적으로 도움이 될 겁니다.
Application 클래스가 왜 존재하는지도 같이 보시면 더 좋겠네요~