2012-04-19 17 views
5

Me confunden las razones por las cuales la clase Java Point toma dos parámetros int y los métodos getX() y getY() devuelven los dobles. Por ejemplo pude definir un puntoPunto de Java, diferencia entre getX() y point.x

Point p = new Point(4,6); 

Si tuviera que llamar ..

p.getX(); 

Sería volver 4.0. y si tuviera que llamar

p.x; 

que obtendría 4.

algún motivo para esto?

+3

Principalmente, es debido a la compatibilidad con versiones anteriores y al hecho de que 'Point' ha sido pirateado durante un período relativamente largo. –

Respuesta

3

Hay Point2D.Double y Point2D.Float clases que se extienden Point2D que es una superclase de Point y ellos deben ser capaces de trabajar con valores de coma flotante. Tenga en cuenta que también hay un setLocation(double, double).

Point2D es una clase abstracta que implementa el cálculo de la distancia de puntos, y setLocation, getX y getY son sus métodos abstractos, por lo que todos ellos utilizan doubles y por qué Point hay que ponerlas en práctica con double s en la firma.

+0

Extraño de cómo debes inicializar tanto x como y para ingresar, pero luego puedes establecer la ubicación de x y y para que se duplique. –

+0

'setLocation' en la clase' Point' lo redondeará al número entero más cercano, por lo que un 'Point' siempre tiene coordenadas enteras. – trutheality

Cuestiones relacionadas