2012-10-04 2 views

답변

1

A variable can be an Object

는 int 형의 매개 변수를 사용하고 뷰를 돌려줍니다.

당신은 당신 같이 findViewById에 R.id.okButton을 전달하는 것은 실제로 Button (a sub-class of View)의 인스턴스 인보기를 반환 할 것을 예상하고 시스템을 알려 (Button)findViewById을 접두어로했다.

해당 지침 (Button)casts보기는 findViewById에 의해 유형 단추에 반환하고 변수 okButton에 할당합니다.

그래서

  • R.id.okButton은 (아마도 제 생각 엔 액티비티의) 방법이다
  • findViewById를 매개 변수로 전달되는 int이며의 객체를 반환
  • 오브젝트 당신의 버튼 변수에 할당 유형 버튼의
  • 에 캐스트 할 수있는 유형보기
+0

Java에서 매개 변수는 실제로 하나의 속성을 가진 객체라고 말합니까? 그리고 물체와 매개 변수 사이의 차이점은 속성의 수와 물체에 대한 키워드 'new'뿐입니다. – Adam

+0

아니요 매개 변수는 메서드에 전달되는 정보 조각입니다. int 나 Object와 같은 기본 유형일 수 있습니다. Object와 매개 변수의 차이점은 하나가 Object이고 메소드를 포함 할 수 있고 다른 하나는 매개 변수 (많은 차이점이 있음)입니다. 기본 자바 문서와 기본적인 객체 지향 예제를 읽으려면이 기본 용어의 의미를 직접 이해하고 싶다. –

+0

나는 그 모든 것을 알고있다.하지만 차이점은 무엇인지 알 수있다 : private button okButton = (Button) findViewById (R.id.okButton); 버튼 okButton = 새 버튼(); okButton = (버튼) findViewById (R.id.okButton) ??? thx – Adam

1

아무것도. 당신은 자바 구문에 대해 혼란스러워 보입니다. "final Button okButton"은 "Button"유형의 오브젝트 "okButton"의 선언입니다. 개체 참조를 다시 할당 할 수 없도록 "final"으로 선언되었습니다. 당신이 documentation for findViewById 보면

+0

... 실제로 그것은 아주 기본적인 리플렉션 코드로 할 수있다. –

+0

알아요.하지만 새로운 객체는 'new'라는 키워드로 선언해야합니다. 그렇지 않으면 변수입니다. 그렇지 않습니까? 그렇지 않다면, 둘 사이에서 어떻게 다를 수 있습니까? (var vs obj)? – Adam

+0

그래서 okButton은 Button 유형의 변수입니다. 따라서 Button 클래스의 메서드를 호출 할 수 있습니다. 그 질문에 대답합니까? – Sameer

0

Button okButton은 버튼 객체 okButton을 작성한 후 xml에서 만든 버튼 유형 객체로 인스턴스화하고 고유 한 식별 이름 okButton을 부여했음을 의미합니다.

또 다른 방법은

Button okButton = new Button(this); 

이 실제로는 동적으로 생성 두 번째 당신이 한에 동의하고 추가/XML을 건드리지 않고 제거 할 수 있습니다 사이에 아무런 차이가없는 것입니다.

+0

그래서 서로 다른 것 같습니다. Button okButton = new Button(); ?? 귀하의 의견에 – Adam

+0

명시 적으로 버튼을 만들고 변수에 할당하십시오. findViewById의 경우 메서드에 단추를 요청합니다. 새 Button을 만들거나 이미 존재하는 Button을 참조하는 경우 알 필요가 없으며주의를 기울일 필요가 없습니다. –

관련 문제