Toon posts:

[Java] Classes inladen

Pagina: 1
Acties:
  • 305 views

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een java file dat een class moet inladen (andere file), maar ik krijg het maar niet werkend. Ik heb op internet naar uitleg gezocht hoe dat nou precies in z'n werking gaat maar ik kom niks duidelijks tegen. Ik heb het volgende:
Program.java
Rekening.java

In Program.java staat het hele programma, in Rekening.java staat een classe Rekening die een bankrekening moet voorstellen. Nu wil ik die classe gebruiken in Program.java.
Op internet ben ik tegen gekomen dat je hem moet importeren (logische lijkt me?:P). Dus ik heb in Program.java het volgende staan: import toepassing.Rekening; (toepassing is in dit geval de package)

Dan definieer ik de classe:
code:
1
private Rekening bankrekening;


en maak ik er een nieuw object van:
code:
1
bankrekening = new Rekening();


Dan gebruik ik het in een ActionListener:
code:
1
2
3
4
5
6
7
class StortHandler implements ActionListener {
     public void actionPerformed(ActionEvent e) {
         double bedrag = Double.parseDouble(tekstVak.getText());
         bankrekening.stort(bedrag);
         tekstVak.setText("");
         repaint();
     }


Ik vraag hierbij niet om mijn code te debuggen, maar wat ik uiteindelijk fout doe. Waarom werkt dit niet? Ben ik nog een stap vergeten? Het lukt me niet om dit op internet te vinden.

Alvast bedankt.

Edit: Misschien m'n classe Rekening ook nog maar even toevoegen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package toepassing;

public class Rekening {
    private String rekeningnummer;
    private double saldo;
    
    public double getSaldo() {
        return saldo;
    }
    public void stort( double bedrag ) {
        saldo += bedrag;
    }
    public double neemOp( double bedrag ) {
        saldo -= bedrag;
        return bedrag;
    }
}

[ Voor 13% gewijzigd door Verwijderd op 22-07-2010 11:34 ]


Acties:
  • 0 Henk 'm!

  • Standeman
  • Registratie: November 2000
  • Laatst online: 07:15

Standeman

Prutser 1e klasse

uhmmm.. wat is nu precies de foutmelding die je krijgt?

The ships hung in the sky in much the same way that bricks don’t.


Acties:
  • 0 Henk 'm!

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Als je een goede IDE gebruikt (NetBeans, Eclipse), dan zitten daar een hele hoop handige tools in die precies aangeven of je 'build path' klopt, of je missende imports hebt en of je syntax klopt.

Maak daar gebruik van. ;)

Sundown Circus


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dit zijn de warnings:
Description Resource Path Location Type
The field Rekening.rekeningnummer is never read locally Rekening.java /programma/src/toepassing line 4 Java Problem
The serializable class Program does not declare a static final serialVersionUID field of type long Program.java /programma/src/toepassing line 8 Java Problem
The serializable class Programma does not declare a static final serialVersionUID field of type long Program.java /programma/src/toepassing line 20 Java Problem

En dit staat er in de console:
Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Container.java:1045)
at java.awt.Container.add(Container.java:365)
at toepassing.Programma.<init>(Program.java:40)
at toepassing.Program.main(Program.java:14)

Maar mijn manier klopt dus wel?
Als je een goede IDE gebruikt (NetBeans, Eclipse), dan zitten daar een hele hoop handige tools in die precies aangeven of je 'build path' klopt, of je missende imports hebt en of je syntax klopt.

Maak daar gebruik van.
Ja ik gebruik Eclipse, maar die zegt zelf niks meer dan die 3 meldingen. De rest klopt allemaal.

[ Voor 19% gewijzigd door Verwijderd op 22-07-2010 11:48 ]


Acties:
  • 0 Henk 'm!

  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 14-10 14:44

Salandur

Software Engineer

de fout zit alvast niet in de code die je gepost hebt. De stacktrace geeft je daarintegen al genoeg informatie over de fout en waar deze optreedt (hint: regel 40 van Program.java).

Assumptions are the mother of all fuck ups | iRacing Profiel


Acties:
  • 0 Henk 'm!

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Nee, de rest klopt niet, want anders kreeg je geen NPE. Dit zijn de regels waar het om gaat:
Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Container.java:1045)
at java.awt.Container.add(Container.java:365)
at toepassing.Programma.<init>(Program.java:40)
Op regel 40 in Program.java is er een statement dat een argument verwacht. Maar die is null. Dus ergens wordt er een variabele niet gezet.

Verder kan ik je aanraden jezelf aan te leren om de warnings die Eclipse genereert serieus te nemen en die op te lossen. Daar wordt je een betere programmeur van. ;)

Sundown Circus


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ah hij werkt nu inderdaad. Ik nam wat uit de console nam inderdaad nooit serieus omdat ik dat toch niet snapte. Maar nu zal ik in het vervolg toch even beter kijken. Ik wou uiteindelijk een lege label adden, wat dus het probleem gaf.

Echt bedankt!

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

...

Foutmeldingen niet serieus nemen omdat je ze niet snapt is, no offense, ronduit stom. Als je een melding krijgt waardoor je zooi niet werkt dan zoek je dat op in Google en zorg je dat je het snapt. Hoe kun je ooit verwachten te leren programmeren als je foutmeldingen gewoon negeert? 8)7

Verder geldt eigenlijk op dit hele topic: ga debuggen! Programmeren is meer dan code kloppen, je moet ook testen en debuggen. Zie Programming FAQ - Debuggen: hoe doe ik dat?

Dit topic gaat dan ook dicht; je had dit makkelijk zelf op kunnen lossen. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.

Pagina: 1

Dit topic is gesloten.