enkel java app - korrigering behövs

Permalänk
Medlem

enkel java app - korrigering behövs

Hej alla!

Jag behöver lite hjälp med min ("enkla") java application.
Den ska ta emot breden och längden och sedan räkna fram 2 saker och visa de.

jag måste använda två klasser
tack för all hjälp

MVH
Hehelol

import java.io.*; public class Rectangle { private double rectangleLength; private double rectangleWidth; public void setRectangleLength( double length ) { if(length > 0.0 && length < 20.0) rectangleLength = length; else rectangleLength = 1.0; } public void setRectangleWidth( double width ) { if(width > 0.0 && width < 20.0) rectangleWidth = width; else rectangleWidth = 1.0; } public double getRectangleLength() { return rectangleLength; } public double getRectangleWidth() { return rectangleWidth; } public String toString() { return String.format( "Length = %.2f\nWidth = %.2f\nPerimeter = %.2f\nArea = %.2f", getRectangleLength(), getRectangleWidth(), ( 2 * ( getRectangleLength() + getRectangleWidth()) ), (getRectangleLength() * getRectangleWidth()) ); } public void displayMessage() { System.out.printf( toString() ); } }

import java.util.Scanner; public class RectangleTest { public static void main( String args[] ) { Scanner input = new Scanner( System.in ); Rectangle myRectangle = new Rectangle(); System.out.print( "Enter the length of the rectangle: "); double length = input.nextDouble(); myRectangle.setRectangleLength( length ); System.out.println(); System.out.print( "Enter the width of the rectangle: "); double width = input.nextDouble(); myRectangle.setRectangleWidth( width ); System.out.println(); myRectangle.displayMessage(); } }

UPS! nu fick jag ihop det, och det fungerar! jag kunde inte ta bort trådet (vet inte varför-det stog att mitt konto är inaktiv eller jag är inte inloggad - kanske för att jag försökte ta bort första posten i ett tråd). hur som helst - om ni kommer med åsikter om förbättringar eller alternativ, så kan ni ändå skriva tack

Permalänk
Medlem

Det kan vara lättare ur programmeringssynpunkt att helt enkelt kalla rectangleWidth och rectangleLength för width samt height då klassen ändå heter Rectangle. Sen tycker jag du ska återimplementera perimeter- och area-metoderna, men som getters istället för setters (alternativt calculateXx kanske? ) dvs public double getPerimeter() { return <din uträkning för omkretsen> }.

Det ser lite snyggare ut.

Och fortsättningsvis kan du använda code-taggarna för att innesluta längre kodstycken och göra den mer läsbar när du postar på forumet..

public double calculatePerimeter() { return (width + height) * 2; }

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

hej!
tack för ditt svar.Jag kämpade länge me att skapa 2 extra set and get för area o perimeter men jag kunde inte få ihop det :S

jag hade typ

public void setRectangleArea(){ double rectangleArea = rectangleLength * rectangleWidth;} public getRectangleArea(){ return rectangleArea;}

o sen samma för perimeter. jag vet inte varför det inte fungerade

och a propos code-taggar, så...jag kunde inte komma på hur man ska göra det, eftersom oftast finns det en knapp - är det

?

oj! nu funkade det!

Permalänk
Medlem

du vill inte kalla metoden för setRectangleArea eftersom

1. Klassen säger redan att det rör sig om en Rektangel.
2. Själva konceptet med setters är att man skickar med ett värde till metoden, som du gör i setWidth. När du inte ska skicka med ett värde är det bättre att döpa metoden till vad den gör, t ex calculateArea eller getArea om du bara vill returnera ett värde.

Problemet med din getter ovan är att du inte specifierat värdet du vill returnera. Det ska stå public double getArea()

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

Hur var det nu ? vi skulle väl inte hjälpa folk med sina läxor eller skoluppgifter.

Helt klart maskerad här som en oskyldig fråga.

Visa signatur

Fractal Design Arc Svart | MSI Z68A-GD55 G3 REV B3 | Intel® Core i7 2600K, 3.4GHz, 8MB | Corsair 16GB (4x4096MB) CL9 1600Mhz VENGEANCE LP | MSI GeForce GTX 670 | Phanteks PH-TC14PE CPU Cooler (vit) | Corsair Power Supply 650W TX M, Modular, ATX, PS/2 | SSD (okänd tillverkare) + 2 äldre SATA2 diskar på 750 Gb, 350 gb. | OS: Microsoft Windows 10 home.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av BlueEyes
Hur var det nu ? vi skulle väl inte hjälpa folk med sina läxor eller skoluppgifter.

Helt klart maskerad här som en oskyldig fråga.

Hjälpa (som i att knuffa dom i rätt riktning) är väl helt okej, det är göra uppgifter åt folk vi inte vill.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av You
Hjälpa (som i att knuffa dom i rätt riktning) är väl helt okej, det är göra uppgifter åt folk vi inte vill.

Rejäla knuffar får jag nog säga.

Men ja ja....

Visa signatur

Fractal Design Arc Svart | MSI Z68A-GD55 G3 REV B3 | Intel® Core i7 2600K, 3.4GHz, 8MB | Corsair 16GB (4x4096MB) CL9 1600Mhz VENGEANCE LP | MSI GeForce GTX 670 | Phanteks PH-TC14PE CPU Cooler (vit) | Corsair Power Supply 650W TX M, Modular, ATX, PS/2 | SSD (okänd tillverkare) + 2 äldre SATA2 diskar på 750 Gb, 350 gb. | OS: Microsoft Windows 10 home.

Permalänk
Medlem

hmm ... det va ju en SÅÅN REJÄÄÄL knuff jag har fått här ... tack BlueEyes för att göra uppgiften åt mej

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av hehelol
hmm ... det va ju en SÅÅN REJÄÄÄL knuff jag har fått här ... tack BlueEyes för att göra uppgiften åt mej

Scenario:
Gnäll inte sedan när du ska lösa uppgiften på riktigt i en annan situation som till exempel som anställd vid en arbetsgivare. Vad glad han ska bli när det framkommer att en inkompetent programmerare anställts som inte kan sin uppgift.

Visa signatur

Fractal Design Arc Svart | MSI Z68A-GD55 G3 REV B3 | Intel® Core i7 2600K, 3.4GHz, 8MB | Corsair 16GB (4x4096MB) CL9 1600Mhz VENGEANCE LP | MSI GeForce GTX 670 | Phanteks PH-TC14PE CPU Cooler (vit) | Corsair Power Supply 650W TX M, Modular, ATX, PS/2 | SSD (okänd tillverkare) + 2 äldre SATA2 diskar på 750 Gb, 350 gb. | OS: Microsoft Windows 10 home.

Permalänk
Medlem

wtf....jaaa...det vore JÄTTE illa om en "inkompetent programmerare" blivit anställd och kunde inte sin uppgift...men va har DET med DET HÄR trådet att göra?! för att om du ville uttrycka din ilska över min inkompetens så hade det räckt med en post.tack

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av hehelol
wtf....jaaa...det vore JÄTTE illa om en "inkompetent programmerare" blivit anställd och kunde inte sin uppgift...men va har DET med DET HÄR trådet att göra?! för att om du ville uttrycka din ilska över min inkompetens så hade det räckt med en post.tack

Dags att stiga ur sandlådan och lämna lite mognadsfyllda svar ? Formuleringar med mera har en del i övrigt att önska.

Sedermera så får vi en handfull poster av detta slag ideligen i forumet med folk som maskerar sina "oskyldiga" frågor som om man synar det i sömmarna är helt klart en läxa eller skoluppgift av något slag som vederbörande vill ha hjälp med.

Vad är meningen med utbildningen om ni inte lär er utan ber andra över nätet att utföra era uppgifter ?

Nåja. Gör som du vill.

Visa signatur

Fractal Design Arc Svart | MSI Z68A-GD55 G3 REV B3 | Intel® Core i7 2600K, 3.4GHz, 8MB | Corsair 16GB (4x4096MB) CL9 1600Mhz VENGEANCE LP | MSI GeForce GTX 670 | Phanteks PH-TC14PE CPU Cooler (vit) | Corsair Power Supply 650W TX M, Modular, ATX, PS/2 | SSD (okänd tillverkare) + 2 äldre SATA2 diskar på 750 Gb, 350 gb. | OS: Microsoft Windows 10 home.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av BlueEyes
Sedermera så får vi en handfull poster av detta slag ideligen i forumet med folk som maskerar sina "oskyldiga" frågor som om man synar det i sömmarna är helt klart en läxa eller skoluppgift av något slag som vederbörande vill ha hjälp med.

Men detta betyder ju som sagt inte att man inte ska hjälpa till. Man lär sig inte om man inte får hjälp med det man inte klarar. Om den hjälpen sen kommer från en lärare, en bok eller oss det ska inte spela någon roll.

Teknocides post är lite gränsfall, hade varit bra med en lite mer utförlig förklaring på varför det ska vara som han säger.

Permalänk
Medlem

hehe ... fattar inte va är ditt problem...men låt mig vara omogen i min sandlåda med mina maskerade frågor

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av You
Men detta betyder ju som sagt inte att man inte ska hjälpa till. Man lär sig inte om man inte får hjälp med det man inte klarar. Om den hjälpen sen kommer från en lärare, en bok eller oss det ska inte spela någon roll.

Teknocides post är lite gränsfall, hade varit bra med en lite mer utförlig förklaring på varför det ska vara som han säger.

Jo, det var nog ett gränsfall (jag antar att du syftar på min sista post).
Av egen erfarenhet vet jag att man ibland stirrar sig blind på saker, speciellt i början när man håller på att lära sig; jag tolkade detta som ett sådant fall eftersom trådskaparen har skrivit andra publika metoder som returnerar värden.

Sen tycker jag det är skillnad på att be om hjälp med sin hemläxa, och att be någon göra den åt en. En jäkla skillnad faktiskt. Därför valde jag att försöka hjälpa till i detta fall.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

tack Teknocide

det är inte så att jag postade uppgiften, utan postade min kod och hade bara frågor om varför det inte fungerar som den borde (och senare möjliga förbättringar till den). Utöver det så har jag postat mina frågor först efter 12h jobb med den.

cheers

Permalänk
Medlem

else
rectangleLength = 1.0;

Känns inte som någon höjdarlösning vore snällare att säga ifrån. ordentligare än att bara tyst misslyckas. Getters/Setters ska helst inte innehålla "skum" logik, de ska sätta/hämta ett värde eller misslyckas.

Hade jag sprungit på den här klassen hade jag antagit att den fungerade hela vägen upp till åtminstone sqrt av storleken på double.

Visa signatur

Jag sover bäst under bord