Jestem nowy w Javie i JavaScript. Podczas pracy z niektórymi samouczkami w Javie dotarłem do części o castowaniu:
public void paint (Graphics g) {
Graphics2D g2 = (Graphics2D) g;
...
}
Czy metoda składnika paint
casting a Graphics
obiekt g
na Object
klasa {}
czy też mam ten pomysł pomieszany z JavaScript, gdzie funkcja jest Obiektem?
function Graphics() {this.type = "graphics object"};
var g = new Graphics();
g.type;
//"graphics object"
Graphics.prototype.g2d = "g2d object";
g.type;
//"graphics object"
g.g2d;
//"g2d object"
Gdy paint(g)
nazywa się, czy to jest dodawanie Graphics
atrybuty do {}
a następnie dodanie Graphics2D
atrybuty do Graphics
?
EDYCJA: Od Poradniki Java
Aby zastosować funkcje Java 2D API w aplikacji, rzuć obiekt Graphics przekazany do metody renderowania komponentu do obiektu Graphics2D.
Kiedy mówi się rzucać Graphics
do Graphics2D
jest g
zmieniając się poprzez dodanie dodatkowych atrybutów, a następnie odnosząc się do niego jako g2
?
Odpowiedzi:
0 dla odpowiedzi № 1Nie jestem pewien, co masz na myśli, ale pierwszy segment kodu rzuca a Graphics
obiekt do a Graphics2D
obiekt.
Obiekt się nie zmienia. Java, w przeciwieństwie do JavaScript, jest silnie wpisana. Więc g było Graphics2D
obiekt przez cały czas. Przesyłanie powoduje, że kompilator wie, że jest to jeden.
Ponadto nie można dodawać atrybutów do funkcji w Javie.