2010-02-06 20 views
13

Şu anda Rectangle ve Rectangle2D (Rectangle2D.Double) değişimini kullanıyorum.Dikdörtgen ve Rectangle2D Farkı

Doğru veri türünü seçerken alacağım düşüncenin ne olduğunu merak ediyordum? Dikdörtgen (Rectangle2D alt sınıfı) daha fazla API işlevi olması dışında, belirgin bir fark görmüyorum.

Teşekkürler.

+5

Eski bir şey. "Rectangle2D", Java'nın daha sonraki bir sürümünde "Rectangle" seçeneğinden daha eklendi ve sonuç, Sun'ın kararlı bir şekilde denemeye çalıştığı girişimi. – skaffman

cevap

11

Dikdörtgen, int koordinatlarını kullanır. Rectangle2D, int, double veya float koordinatlarını kullanmanızın umurunda olmayan soyut bir sınıftır.

Eğer daha fazla çift ve yüzdürme hassasiyetine ihtiyacınız varsa, Rectangle2D ile gitmelisiniz.

Rectangle2D taban sınıfı, yani soyut bir şekilde dikdörtgen şekillerin üzerinde çalışan kod yazıyorsanız, Rectangle2D gitmek ve böylece gibi atayın:

Rectangle2D rect = new Rectangle2D.Double(double, double, double, double); 

veya

Rectangle2D rect = new Rectangle(int, int, int, int) 

Yalnızca inters ile uğraşacağınızı biliyorsanız, Dikdörtgen'i tamamen kullanabilirsiniz.

Dikdörtgenin Rectangle2D.Integer olarak adlandırılacağını söyleyebiliriz. Ama bu da tam olarak değil, çünkü Dikdörtgen, seri hale getirilebilir arabirimi uygulayan üçten yalnızca biridir.

Skaffman'ın yorumladığı gibi, bu biraz eski bir sorun.

3

sınıf Dikdörtgen bu hep Rectangle2D, bir dikdörtgen dönüştürebilir ama tersi için, sen Rectangle2D.getBounds kullanabilirsiniz demektir Rectangle2D, uzanır().