대답 : 예, getcard
이 실제로 해당 매개 변수를 Player
클래스의 일부 개인 필드에 넣었다고 가정합니다.
답변 : Java에서는 원시와 참조라는 두 가지만 사용할 수 있습니다. 프리미티브는 숫자 유형, 문자 및 부울입니다. 다른 모든 것은 객체이고 모든 객체는 참조입니다. 그래서, 당신은
Foo f = new Foo();
를 작성할 때 유형 Foo
의 새로운 객체가 생성되고 (가비지 수집) 힙, 그리고 당신은 또한으로 생각할 수있는 참조의 "포인터"를에 배치됩니다 스택. 자바 언어는 그 참조를 조사 할 수있는 실제적인 방법을 거의 제공하지 않는다. (예를 들어 포인터 나 long
에 캐스트 할 수는 없다.) 그래서 불투명 한 핸들이라고 생각할 수있다.
그래서, 당신은 쓸 때
player.getcard(deck.draw())
전화
deck.draw()
유형 Card
의 객체에 대한 참조를 반환하고, 그 객체는 player.getcard
메서드에 전달된다. Player
클래스는 나중에 다음
public class Player {
private List<Card> cards;
// ...
public void getcard(Card card) {
cards.add(card);
}
}
같이 보입니다 경우, deck.draw()
의 반환 값이 cards
에 추가 된 것을 볼 것이다 cards
개인 필드에 액세스 Player
의 방법으로 호출합니다.
네, 그렇게 할 수 있습니다. 너 해봤 어? 할 수 없다면 그 방법의 정의를 보는 것이 도움이 될 것입니다. – ggreiner
네, 물론 할 수 있습니다. –
예 ................ – Nishant