Aklımda Kalası Kelimeler

* давайте работать вместе
* Zarf ve Mazruf, Zerafet(xHoyratlık) ile aynı kökten(za-ra-fe) gelir
* Bedesten
* Suç subuta ermiştir - Suç sabit olmuştur

4 Ekim 2009 Pazar

Javada Enum

Öncelikle bilinmesi gereken javada enum un bir class gibi davrandığıdır. Ama classtan farklı yapıcı metotları daima private olmak zorunda. Bir de yapıcı metotlarının parametre sayısı enum değerlerine parantez açarak verilebiliyor.
Aşağıdali örnek çok güzel anlatıyor:


package planets;
enum Planet {
// parantez içindeki parametreler
// yapıcı metoda parametre olarak atanır
MERCURY (3.303e+23, 2.4397e6),
VENUS (4.869e+24, 6.0518e6),
EARTH (5.976e+24, 6.37814e6),
MARS (6.421e+23, 3.3972e6),
JUPITER (1.9e+27, 7.1492e7),
SATURN (5.688e+26, 6.0268e7),
URANUS (8.686e+25, 2.5559e7),
NEPTUNE (1.024e+26, 2.4746e7);

private final double mass; // in kilograms
private final double radius; // in meters
Planet(double mass, double radius) {
this.mass = mass;
this.radius = radius;
}
private double mass() { return mass; }
private double radius() { return radius; }

// universal gravitational constant (m3 kg-1 s-2)
public static final double G = 6.67300E-11;

double surfaceGravity() {
return G * mass / (radius * radius);
}
double surfaceWeight(double otherMass) {
return otherMass * surfaceGravity();
}
public static void main(String[] args) {
if (args.length != 1) {
System.err.println("Usage: java Planet ");
System.exit(-1);
}
double earthWeight = Double.parseDouble(args[0]);
double mass = earthWeight/EARTH.surfaceGravity();
for (Planet p : Planet.values())
System.out.printf("Your weight on %s is %f%n",
p, p.surfaceWeight(mass));
}
}


Bu da sonucu(179 verirsek giriş değeri olarak:

run:
Your weight on MERCURY is 67,618613
Your weight on VENUS is 161,994839
Your weight on EARTH is 179,000000
Your weight on MARS is 67,793956
Your weight on JUPITER is 452,969797
Your weight on SATURN is 190,816781
Your weight on URANUS is 162,017769
Your weight on NEPTUNE is 203,760725
BUILD SUCCESSFUL (total time: 0 seconds)