• HelloWorld

    UML diagram behöverhjälp

    Hej, jag håller på att sliter av mig håret just nu med en uppgift till skolan och jag hittar inga bra artiklar eller förklaringar på youtube som förklarar exakt hur man gör för att skapa en java kod utifrån ett UML klass diagram eller tvärtom.
    Vi ska översätta det här bifogade klassdiagrammet till java kod. Jag har kommit en bit och vill veta om det är korrekt och om någon kan hjälpa mig om jag gjort fel..

    Här är UML diagrammet

    och här har jag försökt koda så gott jag kan utifrån det:

     


    class vara
    //Instance Fields

    private String name;
    private double pris;
    private int antal;

    //methods

    public void setNamn(String namn)
    public void setPris (String double pris)
    public void setAntal (int antal)
    public getNamn

    Nu undrar jag om jag är på rätt väg och hur man gör med resten... jag blir så arg för det finns ingen bra sida som beskriver hur man gör.... tycker det här är svårare än vanligt kodande.
    Tacksam för hjälp


     
  • Svar på tråden UML diagram behöverhjälp
  • HelloWorld

    Vilken bra litteratur!! Lätt som en plätt förklarat men jag tycker det är ett måste för nybörjare! Tack så otroligt mycket 

  • Gräsrot
    HelloWorld skrev 2013-07-04 18:17:10 följande:
    Ok fick det, tack :) 
    Jag får error iaf när jag skapar den andra klassen. Det står att illegal static declaration in inner class Test.Vara

    Jag ger faktiskt upp snart  

    Illegal static declaration in inner class test innebär att du har råkat skapa Testklassen inuti Vara klassen.

    någonstans ser det alltså ut så här.

    Class Vara{

    här är en construktor plus lite mer kod

    Här inne någonstans bland allt detta finns det alltså följande kod

    Class Test
    {

    här har du skrivit en massa olika testkommandon och instanser 
      }  // här slutar Test klassen. 

       }    // här slutar Vara klassen

    Med andra ord har du påbörjat den ena klassen innan du kollat att den andra är slut.
    (du försöker bygga garaget inne i huset och har nu problem pga att toaletten är i vägen) 
    det kan vara att din kompilator skapar klasser på detta sätt ELLER att den vill bygga in en
    main i din Varaklass (de flesta testar den på det viset och kompilatorns skapare kanske ville hjälpa till.. Ungefär som när stavningshanteraren går och rättar dina verb för att den tycker de är gammaldags).

    classMyApplication
    {     publicMyApplication()
    {
            // Some init code here     }     // här slutar constructor

    Övrig kod här
    Void något (){ gör något } 

     
    publicvoid main(String[] args)
    {
            // real application code here     }

    } // här slutar klassen Vara

    Lycka till ... Och låt håret sitta kvar på skulten och slå inte datorn.. 


    kolla även http://stackoverflow.com/      
  • HelloWorld

    tror jag fick till det nu... eller vad säger du kära "lärare" hehe


    import java.lang.String;
    public class Vara {

    //Deklarerar variabler
    private String name;
    private double price;
    private int antal;

    //tildela konstruktorer för de deklarerade variablerna
    public Vara (String name, int antal, double price)
    {
    this.name = name;

    this.antal = antal;

    this.price = price;

    public class Test {
    public void main(String[] args) {
    Vara var = new Vara();
    }
    public void setName(String name) {
    var.setName("Halstabletter");
    // this.name syftar på name i deklarerade variabler (private string name) och name syftar på det som står i parrantesen i void metoden
    }

    public void setPrice (double price) {
    var.setPrice("12.5"); //det är ju en double

    }
    public void setAntal (int antal) {
    var.setAntal("10");

    }

    public String getName()
    {
    return this.name;
    }

    public double price()
    {
    return this.price;
    }

    public int getAntal()
    {
    return this.antal;
    }
    }
    }  
  • Gräsrot
    HelloWorld skrev 2013-07-04 19:49:12 följande:
    tror jag fick till det nu... eller vad säger du kära "lärare" hehe

    import java.lang.String;
    public class Vara {

    //Deklarerar variabler
    private String name;
    private double price;
    private int antal;

    //tildela konstruktorer för de deklarerade variablerna
    public Vara (String name, int antal, double price)
    {
    this.name = name;

    this.antal = antal;

    this.price = price;

    public class Test {
    public void main(String[] args) {
    Vara var = new Vara();
    }
    public void setName(String name) {
    var.setName("Halstabletter");
    // this.name syftar på name i deklarerade variabler (private string name) och name syftar på det som står i parrantesen i void metoden
    }

    public void setPrice (double price) {
    var.setPrice("12.5"); //det är ju en double

    }
    public void setAntal (int antal) {
    var.setAntal("10");

    }

    public String getName()
    {
    return this.name;
    }

    public double price()
    {
    return this.price;
    }

    public int getAntal()
    {
    return this.antal;
    }
    }
    }  
    Har hittat felet

    import java.lang.String; public class Vara {              //Deklarerar variabler private String name; private double price; private int antal;


    //tildela konstruktorer för de deklarerade variablerna public Vara (String name, int antal, double price) { this.name = name;


    this.antal = antal;


    this.price = price; 


    -- Här är felet--


    public class Test {    public void main(String[] args) {       Vara var = new Vara();    }

    som jag trodde du försöker deklarera en klass i klassen..

     

  • Gräsrot

    så här ska det se ut


    public class Vara {             

    //Deklarerar variabler

    private String name;
    private double price;
    private int antal;


    //tildela konstruktorer för de deklarerade variablerna
    public Vara (String name, int antal, double price) {
    this.name = name;
    this.antal = antal;
    this.price = price; 
    } // slut constructor


     public void setName(String name)  {  this.name = name; }
    public void  setPrice (double price) { this.price = price;  //det är ju en double}
    public void setAntal (int antal)  {   this.antal = antal;  }


    public String getName() {    return this.name; } 
    public double price() {   return this.price; } 
    public int getAntal() {    return this.antal; }      

    } // slut på Vara

    testklassen ska stå som en egen klass


    public class Test
    {    public void main(String[] args)
    {       Vara var = new Vara(); 


     var.setName("Halstabletter");  
    var.setPrice("12.5");  
    var.setAntal("10");


     System.Out.Writeline("Namnet är " +var.getName() +" priset är " +var.getPrice() +" och antalet är "+var.getAntal() )// här slutar system.out


    }// slut main  
    } // slut Test klass

     


     
     

  • jaghopparhögt
    HelloWorld skrev 2013-07-04 19:55:21 följande:
    nej du  usch, struntsamma... Netbeans lurade mig totalt...får knåpa vidare.... ! 
    Ett bra tips, när du skriver så enkla saker så använd inte netbeans, använd en texteditor och javac istället. Netbeans hjälper dig väldigt mycket med saker du istället borde få in i ryggmärgen.
  • sportpappa

    Om du ska ha 2 publika klasser i samma fil så måste du nästla dem, dvs. lägga en av dem inuti den andra. I ditt fall så är det inte det du vill göra.
    Antingen så får du flytta ut klassen Test till en ny fil Test.java eller så flyttar du in main-metoden i Vara-klassen och tar bort Test-klassen eftersom den inte fyller någon funktion i ditt fall.

  • HelloWorld
    jaghopparhögt skrev 2013-07-04 20:22:21 följande:
    Ett bra tips, när du skriver så enkla saker så använd inte netbeans, använd en texteditor och javac istället. Netbeans hjälper dig väldigt mycket med saker du istället borde få in i ryggmärgen.
    Ok nu har jag fattat faktikst.....äntligen... !! :) .men ett återstående problem bara. Nu säger programmet att jag har att göra med en public class Test som borde deklareras i en java fil. 

    Hur ska jag göra det när filen är döpt redan efter class Vara?

     
  • jaghopparhögt
    HelloWorld skrev 2013-07-04 20:54:19 följande:
    Ok nu har jag fattat faktikst.....äntligen... !! :) .men ett återstående problem bara. Nu säger programmet att jag har att göra med en public class Test som borde deklareras i en java fil. 

    Hur ska jag göra det när filen är döpt redan efter class Vara?

     
    Byt namn på filen?
Svar på tråden UML diagram behöverhjälp