제 2D OpenGL ES 2.0 게임에서 스프라이트로 사용하기 위해 텍스처 쿼드를 만드는 'Quad'라는 맞춤 클래스가 있습니다. 내가하려고하면, 그러나개체 하위 클래스의 변수에 액세스 할 수 없습니까?
Quad hero = new Hero();
:
public class hero extends Quad(){
//Variables relating specifically to this character
int heroX = 0;
int heroY = 0;
}
내가 지금처럼 내 객체를 생성 - 다음
public class Quad(){
//Quad creation stuff here
}
나는 (이 아닌 innerclass 다른 파일에서 예) 별도의 서브 클래스가 'heroX'및 'heroY'변수에 액세스하려면 아무 것도 얻지 못합니다 .....
그래서 시도해 보겠습니다.
hero.heroX
그러나 위 변수는이 변수를 선택하지 않습니다.
것입니다. 그러나 내 Quad 클래스에있는 변수를 찾으십시오. 하지만 Quad 클래스를 영웅 클래스로 확장하면 내 객체를 통해 사용할 수 있다고 생각했을 것입니다.
누군가 내 사고가 잘못되어 어떻게 이러한 2 가지 변수에 액세스 할 수 있는지 설명해주십시오. 감사합니다
그가 접근자를 사용한다면 ... 나는 그것이 문제라고 생각하지 않습니다. 다른 언어로, 어쩌면. 그렇지 않다면 내 대답은 끔찍한 잘못입니다. –
@LewsTherin - 정답은 액세스와 올바른 유형이 모두 필요하다는 것입니다. 그러나 Java는 기본적으로 패키지 전용이므로 (동일한 패키지의 모든 클래스는 해당 변수를 읽을 수 있음) 비공개가 아닙니다. – ianhanniballake
예 @ianhanniballake, 방금 영웅으로 선언했습니다. 그래서 이제는 영웅 영웅 = 새로운 영웅()이라고 말하고 있습니다. 그리고 그것은 정상적으로 작동합니다 - 이렇게하면 Quad 클래스와 Hero 클래스의 모든 메서드와 변수에 액세스 할 수 있습니다 - 왜 그런가요? 확실하게 내가 영웅을 선언하고 그 객체를 생성 할 때 새로운 영웅 (쿼드이기도하다)으로 만들면 분명히 컴파일러는 히어로뿐만 아니라 쿼드? 그렇지 않다면, 'Quad hero = new Hero() - 자바 코드에서 여러 번 본 적이있는 것 같은데 ...... 혼란 스럽다! : -/ – Zippy