안드로이드 개발 질문/답변
(글 수 45,052)
예를 들어서
java 파일에서
import android.app.Activity;
import android.os.Bundle;
import android.wiget.TextView;
public class 테스트 extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView 안녕 = new TextView(this); // <- 이거 왜 this가 들어갔는데, 인스턴스가 왜 잘~ 작동되는거에요?
......
}
this 가 고작 테스트잖아요 근대 뭐가있다고 this를 파라미터로 받는거죠?????
문제는 이런게 한두개가 아니더라고요!! 동작은 하는데, 작동 원리가 잘 안들어옵니다ㅠ
알려주세용 ㅠ
java 파일에서
import android.app.Activity;
import android.os.Bundle;
import android.wiget.TextView;
public class 테스트 extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView 안녕 = new TextView(this); // <- 이거 왜 this가 들어갔는데, 인스턴스가 왜 잘~ 작동되는거에요?
......
}
this 가 고작 테스트잖아요 근대 뭐가있다고 this를 파라미터로 받는거죠?????
문제는 이런게 한두개가 아니더라고요!! 동작은 하는데, 작동 원리가 잘 안들어옵니다ㅠ
알려주세용 ㅠ
2010.01.16 20:32:45
음.. 자바 공부를 하셔야 될듯 하네요 쿨럭.. (자바로 한정짓기보다는 OOP 프로그래밍;;)
먼저 TextView의 생성자를 살펴보면 여러가지가 있지만 TextView(Context context) 와 같이 context를 생성시에 파라메터를 넘겨주어야 됩니다.그럼 context를 얻어와야되는데 여러가지 방법 중 위의 경우는 아래 표에서 보다시피 테스트 클래스자체가 context를 상속받아서 만들어진 넘이다보니 그냥 casting해서 넘겨도 되는겁니다. 이게 어케가능한지 설명은 리플로는 지면이 부족해서 OOP관련 책을 공부하시는 걸 추천드립니다. ^^; (C++이든, java든 상속에 관련된 파트를 찾아보시면 됩니다.) 그리고 java역시 OOP언어이다보니 OOP언어에 대한 이해가 확실하지 않으시면 제대로된 프로그래밍을 만들기는 힘드니 꼭 찾아보세요~
+- 테스트
먼저 TextView의 생성자를 살펴보면 여러가지가 있지만 TextView(Context context) 와 같이 context를 생성시에 파라메터를 넘겨주어야 됩니다.그럼 context를 얻어와야되는데 여러가지 방법 중 위의 경우는 아래 표에서 보다시피 테스트 클래스자체가 context를 상속받아서 만들어진 넘이다보니 그냥 casting해서 넘겨도 되는겁니다. 이게 어케가능한지 설명은 리플로는 지면이 부족해서 OOP관련 책을 공부하시는 걸 추천드립니다. ^^; (C++이든, java든 상속에 관련된 파트를 찾아보시면 됩니다.) 그리고 java역시 OOP언어이다보니 OOP언어에 대한 이해가 확실하지 않으시면 제대로된 프로그래밍을 만들기는 힘드니 꼭 찾아보세요~
java.lang.Object | ||||
↳ | android.content.Context | |||
↳ | android.content.ContextWrapper | |||
↳ | android.view.ContextThemeWrapper | |||
↳ | android.app.Activity |