Witam !
Mam prosty programik który oblicza pole powierchni oraz obwóg figur geometrycznych (okręgu i prostokąta). Program działa bardzo dobrze ale po pewnym czasie eksperymentowania z kodem próbuję przypisać wartoś do zmiennej w części main tj. do zmiennej a. Wartość miała pochodzić z "accessor'a" (z góry przepraszam za język obcy ale korzystam z książki angielskojęzycznej): public double getRadius(){return r;}. Problem w tym że nie potrafię dostać się do subclassy i np. zapis Circle.shapes.getRadius nie działa. Operuję na macierzy więc do indeksów w macierzy Shape przypisywane są różne wartości zarówno dla okręgu jak i prostokąta. Jaki zapis byłyby właściw aby wartość została zwrócona do a=... ?
Z góry dzięki za pomoc.
Poniżej kod
public abstract class Shape {
public abstract double area();
public abstract double circumference();
}
class Circle extends Shape{
public static final double PI = 3.1415;
protected double r;
public Circle(double r){
this.r=r;
}
public double getRadius(){
return r; --------------------->
}
public double area(){
return PI*r*r;
}
public double circumference(){
return 2*PI*r;
}
}
class Rectangle extends Shape{
protected double w,h;
public Rectangle(double w, double h){
this.w=w;
this.h=h;
}
public double getWidth(){
return w;
}
public double getHeight(){
return h;
}
public double area(){
return w*h;
}
public double circumference(){
return 2*(w+h);
}
public static void main(String []args){
Shape[] shapes = new Shape[3];
shapes[0] = new Circle(2.0);
shapes[1] = new Rectangle(1.0,3.0);
shapes[2] = new Rectangle(4.0,2.0);
double a=shapes.getRadius(); <----------------------------
double total_area = 0;
double total_circumference = 0;
for(int i=0; i<shapes.length; i++){
total_area+=shapes[i].area();
total_circumference+=shapes[i].circumference();
}
System.out.println("Total area is: " + total_area);
System.out.println("Total circumference is: " + total_circumference);
}