Sida 1 av 1

hjälp: nybörjar-java [LÖST]

Postat: 28 maj 2007, 15:40
av Chippen
Jag har precis plockat upp boken lär dig java 2 på 3 veckor som stått i bokhyllan ett bra tag nu.

Men jag har direkt stött på problem. Jag försöker skriva in det första exempelprogrammet men det funkar inte riktigt. jag användet netbeans och koden ser ut såhär:

Kod: Markera allt

    public static void main(String[] args) {
        class VolcanoRobot() {
    String status;
    int speed;
    float temperature;
    
    void chechTemperature() {
        if (temperature > 660) {
            status = "returning home";
            speed = 5
        }
        
    }
    void showAttributes(){
        System.out.println("Status:" + status);
        System.out.println("speed:" + speed);
        System.out.println("Temperature:" + temperature);
    }
    
}
    }
    
}
}
i felmeddelandet står det:
init:
deps-jar:
Compiling 1 source file to /home/chippen/java/test/build/classes
/home/chippen/java/test/src/test/Main.java:26: '{' expected
        class VolcanoRobot() {
1 error
BUILD FAILED (total time: 0 seconds)
Den säger alltså att den förväntar sig ett { på den rad där det står class VolcanoRobot() { och där står ju redan ett { och inte blir det bättre av att jag skriver ett till :S...tacksam för hjälp

MVH

SV: hjälp: nybörjar-java

Postat: 28 maj 2007, 17:33
av Sualo
Nu kan jag ju inte java men är det inte så att du saknar ett }

När jag räknar ser jag 3 st { men bara 2 st }
men som sagt jag kan ju inte java

SV: hjälp: nybörjar-java

Postat: 28 maj 2007, 17:46
av Okänd
jo den här koden borde fungera:

Kod: Markera allt


public class VolcanoRobot() {
      String status;
      int speed;
      float temperature;

     /* varje klass behöver en konstruktor för att skapa ett objekt */

     
     public VolcanoRobot() {
       /* i konstruktorn så bör man tilldela attribut */  
       status = "en sträng";
         speed = 3;
         temperature = 3;

     }

    
     void chechTemperature() {
        if (temperature > 660) {
            status = "returning home";
            speed = 5;
        }
      }
        
        void showAttributes(){
           System.out.println("Status:" + status);
           System.out.println("speed:" + speed);
           System.out.println("Temperature:" + temperature);
    }
    
     /* main metoden är funktionen som körs först i programmet */
     public static void main(String[] args) {

           /* här skapar vi ett robot objekt och skriver ut dess attrbribute*/
           VolcanoRobot robot = new VolcanoRobot();

           robot.showAttributes();
     }
}

SV: hjälp: nybörjar-java

Postat: 28 maj 2007, 18:32
av Chippen
gasol, när jag klistrar in din kod i gedit och döper filen till test2.java och kör komandot

javac ./test2.java så får jag felmeddelandet:
/home/chippen/java/test2.java:2: '{' expected
public class VolcanoRobot() {
                        ^
/home/chippen/java/test2.java:41: '}' expected
^
2 errors

gör jag något fel?

SV: hjälp: nybörjar-java

Postat: 28 maj 2007, 18:44
av TicToc
Chippen skrev: gör jag något fel?
Ja, det gör du...

init:
deps-jar:
Created dir: /home/patrik/dvlp/slask/JavaApplication1/build/classes
Compiling 1 source file to /home/patrik/dvlp/slask/JavaApplication1/build/classes
compile:
run:
Status:en sträng
speed:3
Temperature:3.0
BUILD SUCCESSFUL (total time: 0 seconds)

Ändra public class VolcanoRobot() { till
public class VolcanoRobot {

SV: hjälp: nybörjar-java

Postat: 28 maj 2007, 18:58
av Chippen
ah, tack så mycket!  det var jag som hade lyckats göra fel (ett helt ologiskt fel till på köpet :S

SV: hjälp: nybörjar-java

Postat: 28 maj 2007, 20:08
av Okänd
doh! jag kanske skulle ha kompilerat koden själv innan jag postade den :P

SV: hjälp: nybörjar-java

Postat: 28 maj 2007, 20:16
av Chippen
asså hur gör jag för att köra den... när jag kör javac och inte får något felmeddelande så händer istället ingenting...

SV: hjälp: nybörjar-java

Postat: 28 maj 2007, 20:28
av Okänd
när du har kompilerat filen så kommer det att skapas en VolcanoRobot.class fil. För att köra den så skriver du i samma mapp som den filen det här:

java -cp .  VolcanoRobot

Kod: Markera allt

<arlong-park /home/gasol> javac VolcanoRobot.java

<arlong-park /home/gasol> java -cp . VolcanoRobot
Status:en sträng
speed:3


SV: hjälp: nybörjar-java

Postat: 28 maj 2007, 21:25
av Chippen
jag får nått fel...
chippen@chippen-desktop:~$ javac /home/chippen/java/test1.java
chippen@chippen-desktop:~$ java -cp . VocolcoRobot
Exception in thread "main" java.lang.NoClassDefFoundError: VocolcoRobot

SV: hjälp: nybörjar-java

Postat: 28 maj 2007, 21:31
av TicToc
Chippen skrev: jag får nått fel...
chippen@chippen-desktop:~$ javac /home/chippen/java/test1.java
chippen@chippen-desktop:~$ java -cp . VocolcoRobot
Exception in thread "main" java.lang.NoClassDefFoundError: VocolcoRobot
Varför sitter du inte i netbeans?
Det kan vara så att 'fel' java anropas, du har nog en gnu-variant isnatllerad också. Skriv hela sökvägen till suns java, se om det blir skillnad.
Eller skriv java --version och sedan java -version, då ser man vem som 'svarar'.

SV: hjälp: nybörjar-java

Postat: 28 maj 2007, 21:38
av Chippen
java -version
java version "1.5.0_11"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03)
Java HotSpot(TM) Client VM (build 1.5.0_11-b03, mixed mode, sharing)
ska jag vara ärlig så är jag inte i netbeans för att jag inte förstår allt det som står från början när jag startar ett projekt... du kanske har lust att förklara vad jag ska skriva vart?

Kod: Markera allt

/*
 * Main.java
 *
 * Created on den 28 maj 2007, 21:36
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package javaapplication4;

/**
 *
 * @author chippen
 */
public class Main {
    
    /** Creates a new instance of Main */
    public Main() {
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
    }
    
}

SV: hjälp: nybörjar-java

Postat: 29 maj 2007, 22:18
av Galgalid
Du gör ett nytt projekt och väljer java-application..ger den ett namn och väljer typ enable main class...sen genereras projektet också står där massa skit...bara ta bort det och börja från början...sen när du har skrivt projektet så går du till build och väljer build main project...acceptera..klart...

Koden för en fungerande VOlcanoRobot-applikation ser ut såhär:

class VolcanoRobot {
    String status;
    int speed;
    float temperature;

    void checkTemperature() {
        if (temperature > 660) {
            status = "returning home";
            speed = 5;
        }
    }

    void showAttributes() {
        System.out.println("Status: " + status);
        System.out.println("Speed: " + speed);
        System.out.println("Temperature: " + temperature);
    }

    public static void main(String[] arguments) {
        VolcanoRobot dante = new VolcanoRobot();
        dante.status = "exploring";
        dante.speed = 2;
        dante.temperature = 510;

        dante.showAttributes();
        System.out.println("Increasing speed to 3.");
        dante.speed = 3;
        dante.showAttributes();
        System.out.println("Changing temperature to 670.");
        dante.temperature = 670;
        dante.showAttributes();
        System.out.println("Checking the temperature.");
        dante.checkTemperature();
        dante.showAttributes();
    }
}

SV: hjälp: nybörjar-java

Postat: 30 maj 2007, 08:14
av Chippen
Tackar, jag har nu lyckats få det att funka... tror det är mina netbeans skills som inte håller måttet :P

SV: hjälp: nybörjar-java

Postat: 30 maj 2007, 08:35
av Okänd
Problem solved ?
;) ;) ;)

SV: hjälp: nybörjar-java

Postat: 30 maj 2007, 08:36
av Chippen
yepp, problem solved ::D