Java Mütəmadi Çoxbucaq
interface RegularPolygon { int getNumSides(); double getSideLength(); static int totalSide(RegularPolygon[] rpArray) { } default double getPerimeter() { } default double getInteriorAngle() { } } class EquilateralTriangle implements RegularPolygon { private double sideLength; public EquilateralTriangle(double sideLength) { } public int getNumSides() { } public double getSideLength() { } public String toString() { } } class Square implements RegularPolygon { private double sideLength; public Square(double sideLength) { } public int getNumSides() { } public double getSideLength() { } public String toString() { } } public class Main { public static void main(String[] args) { Scanner con = new Scanner(System.in); int n = con.nextInt(); RegularPolygon[] rpArray = new RegularPolygon[n]; ... con.close(); } }
Proqramı aşağıdakı tələblərə uyğun olaraq yazın:
İki abstrakt metoddan ibarət RegularPolygon interfeysini yaradın: getNumSides və getSideLength;
EquilateralTriangle sinfini yaradın, bu interfeysi həyata keçirən və onun getNumSides funksiyası 3 qaytarır, getSideLength funksiyası isə konstruktorla təyin olunan dəyişəni qaytarır;
Square sinfini yaradın, bu interfeysi həyata keçirən və onun getNumSides funksiyası 4 qaytarır, getSideLength funksiyası isə konstruktorla təyin olunan dəyişəni qaytarır;
İnterfeysə statik metod totalSides əlavə edin, hansı ki, RegularPolygon[] massivinə əsasən bütün fiqurların tərəflərinin ümumi sayını qaytarır;
İki default metod əlavə edin:
getPerimeter (n * length, burada n - tərəflərin sayı)
getInteriorAngle ((n - 2 )π / n radianlarda)
Giriş məlumatları
Birinci sətir n (n ≤ 100) ədədi ilə fiqurların sayını ehtiva edir. Hər bir növbəti sətir fiqurun adını (Triangle və ya Square) və onun tərəfinin uzunluğunu (real ədəd) ehtiva edir.
Çıxış məlumatları
Hər bir fiqur üçün onun adını, tərəfinin uzunluğunu, perimetrini və daxili bucağının dəyərini göstərilən çıxış nümunəsinə uyğun olaraq çıxarın. Son sətirdə bütün fiqurların tərəflərinin ümumi sayını çıxarın.