Ein java-Programm zum berechnen des Umfangs von Rechteck,Kreis,Rechteck und Dreieck
Bekam ich eine Zuordnung durchzuführen, die Methode überladen in inheritence in java zu entwerfen, ein Programm, das berechnet den Umfang der verschiedenen Formen, ich habe den code wie unten gezeigt, aber wenn ich versuche zu kompilieren, es Fehler.
import java.io.*;
import java.util.*;
public class Perimeter {
public double getperimeter(int constant,double pi,double radius){
return(constant*pi*radius);
}
public double getperimeter(int sconstant,double length){
return(sconstant*length);
}
public double getperimeter(int rconstant,double rlength,double widith){
return(rconstant*(rlength+widith));
}
public double getperimeter(double base,double height,double hypotenuse){
return(base+height+hypotenuse);
}
public void main (String args []){
final double pi=22/7;
final int constant=2;
double raduius;
final int sconstant=4;
double length;
final int rconstant=2;
double rlength;
double widith;
double base;
double height;
double hypotenuse;
Perimeter g= new Perimeter();
Scanner s=new scanner(System.in);
System.out.println("Enter The Radius");
g.radius=s.nextDouble();
System.out.println("Enter The Square Length");
g.lenght=s.nextInt();
System.out.println("Enter The Rectangle Lenght");
g.rlength=s.nextInt();
System.out.println("Enter The Rectangle widith");
g.widith=s.nextInt();
System.out.println("Enter The Triangle Base");
g.base=s.nextInt();
System.out.println("Enter The Triangle height");
g.height=s.nextInt();
System.out.println("Enter The Triangle hypotenuse");
g.hypotenuse=s.nextInt();
System.out.println("Perimeter = " + g.getperimeter(constant,pi,radius));
System.out.println("Perimeter = " + g.getperimeter(sconstant,length));
System.out.println("Perimeter = " + g.getperimeter(rconstant,rlength,widith));
System.out.println("Perimeter = " + g.getperimeter(base,height,hypotenuse));
- ist diese vor Ort die error-Wettbewerb ?? dann kann ich vor Ort eines Fehlers, Sie haben keine schließende Klammer für Ihre Haupt-und Ihre Klasse.. 😛
- und seine main-Methode ist nicht static void, es ist nur leere.
- ES würde helfen, zu wissen, was sind die Fehler, die Sie erhalten.
- Ihr code nicht mit Vererbung überhaupt und überlastung nicht viel zu tun mit der Vererbung. Meine Vermutung ist, dass Sie verwenden sollten, Polymorphismus statt, und überschreiben Sie die abstrakte Methode
computePerimeter()
in den Unterklassen von der Klasse Form (das wäre Quadrat, Dreieck, etc.)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist eine "klassische" überwiegendes problem, dass Akademiker Liebe. (Andere einbeziehen, Tieren oder Fahrzeugen.)
Beginnen Sie mit einem
Shape
Schnittstelle:Dann haben die Unterklassen implementieren, die es, jede auf Ihre eigene Weise:
Werden Sie in der Lage, Dinge zu tun wie diese:
Fügen Sie eine neue Form der Umsetzung und der ursprüngliche code noch funktioniert. Es ist die Essenz des Polymorphismus und dynamische Bindung.
Definieren Sie zwei Methoden mit gleicher Signatur in einer einzigen Klasse. Dies ist ein Fehler. Ihre Methoden :
Auch deine main-Methode muss als statisch deklariert
Hallo Sie haben sollte, die Klasse Perimeter in einer anderen Datei.
Ich sehe fehlende Klammern schließen die Klasse Umfang.
Auch wie Xavier erwähnt, haben Sie zwei Methoden mit der gleichen Signatur.
Sie sind auch Lesen Werte aus Scanner in Umfang Instanz-Variablen und dann die übergabe des initialisierten Werte für den Perimeter-Methoden.
Also ich würde trennen Sie die Perimeter-Klasse und in der main-Lesen Sie die Werte der lokalen Variablen und übergeben Sie an Umfang Methoden.
Sind Sie noch nicht vertraut mit java scheint es daher um die Hilfe zu starten:
Die main-Methode statisch ist, wird zuerst ausgeführt.
Sind Sie mit überladenen Methoden getperimeter, wo Sie können leicht mischen von int und double. Vielleicht wählen Sie einen eindeutigen Namen. Java-Konvention ist die Verwendung von funny camel-case: getPerimeter.