Toon posts:

Klasse wordt niet herkend

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi iedereen, Ik loop weer eens helemaal vast in het maken van een code. Ik ben aan de hand van het boek Java Programmeren voor dummies aan het proberen om een code te schrijven om een schoolrapport te maken. Ik heb daarvoor eerst de volgende code geschreven:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.text.DecimalFormat;

public class Leerling {
    private String naam;
    private double resultaat;

    public Leerling(String naam, double resultaat) {
        this.naam=naam;
        this.resultaat=resultaat;
    }

    public String getnaam() {
        return naam;
    }

    public double getresultaat() {
        return resultaat;
    }

    public String getresultaatString() {
        DecimalFormat resultaten = new DecimalFormat();
        resultaten.setMaximumIntegerDigits(2);
        resultaten.setMaximumFractionDigits(2);
        resultaten.setMinimumFractionDigits(2);
        return resultaten.format(resultaat);
    }
}
Waarschijnlijk heb ik hier een fout in gemaakt, want deze klasse wordt in mijn volgende klasse niet herkent. De klasse die ik hierna heb geschreven is:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import java.util.Scanner;
import java.io.File;
import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.GridLayout;

@SuppressWarnings("serial")
    public class CijferLijst extends JFrame {
    
        public CijferLijst() throws IOException {
            Leerling leerling;
            Scanner Bestand = new Scanner(new File("cijferlijst.txt"));
        
        for (int getal = 1; getal <= 9; getal++) {
        leerling = new Leerling(Bestand.nextLine(), Bestand.nextDouble());
        Bestand.nextLine();

        addLeerlingInfo(leerling);
        }

        setTitle("Cijferlijst");
        setLayout(new GridLayout(6, 2, 50, 3));
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        pack();
        setVisible(true);

        Bestand.close();
    }

    void addLeerlingInfo(Leerling leerling) {

        add(new JLabel(leerling.getnaam()));
        add(new JLabel(leerling.getresultaatString()));
    }
}
Het bestand cijferlijst.txt dat ik heb aangemaakt, ziet er zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
Wiskunde
7,5
Aardrijkskunde
8,7
Geschiedenis
6,3
Nederlands
9,4
Duits
7,6
Engels
6,7
Ik krijg dus de hele tijd deze foutmelding:
code:
1
2
error: cannot find symbol
        void addLeerlingInfo(Leerling leerling)
Ik denk dat er in mijn eerste klasse Leerling een fout zit, maar ik kan de vinger niet op de zere plek leggen. Ik heb ook al op google gezocht, maar ik krijg bij deze foutmelding zo veel mogelijke oplossingen dat ik niet zo goed weet waar ik moet beginnen en wat er op mijn situatie van toepassing is en hoe ik het zou moeten veranderen.

Kunnen jullie mij vertellen wat er mis in met mijn klasse Leerling waardoor hij niet herkent wordt binnen de klasse CijferLijst?

Alle reacties


Acties:
  • +1 Henk 'm!

  • moijamie
  • Registratie: Augustus 2013
  • Laatst online: 03-10 13:58
Ik ken Java niet zo goed maar mis je niet gewoon een import van de Leerling klasse?

code:
1
2
3
4
5
6
7
8
9
import java.util.Scanner;
import java.io.File;
import java.io.IOException;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.GridLayout;

@SuppressWarnings("serial")
    public class CijferLijst extends JFrame {

[ Voor 61% gewijzigd door moijamie op 18-04-2019 20:20 ]

const { signature } = await fetchProfile()


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoe zou ik dat precies moeten doen? Want ik heb tot nu toe eigenlijk alleen geleerd hoe ik iets uit de java api moet importeren?

Acties:
  • +1 Henk 'm!

  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 04-07 16:30
Had je hier niet al een topic over lopen? type van een andere klasse

Acties:
  • +1 Henk 'm!

Verwijderd

Topicstarter
Dat klopt, maar die is afgesloten, omdat ik me niet aan de quickstart had gehouden. Ik heb nu mijn best gedaan om het wel volgens de conventies te doen.

Acties:
  • +1 Henk 'm!

  • P-Storm
  • Registratie: September 2006
  • Laatst online: 05-10 22:21
Kijk goed naar het haakjes gebruik. Indien je een IDE gebruikt kan die dit voor je zelf doen, anders kan je het online proberen. Kijk goed, staat alle code op de juiste plaats?

Acties:
  • +2 Henk 'm!

  • Jorick
  • Registratie: November 2001
  • Laatst online: 14:51
Je probeert in de constructor van de klasse CijferLijst de methode addLeerlingInfo aan te roepen maar zoals de foutmelding al aangeeft kan de compiler die methode niet vinden binnen de klasse CijferLijst.
Op regel 29 sluit je de klasse CijferLijst af. De declaratie van de methode addLeerlingInfo staat dus buiten de klasse CijferLijst en vandaar de foutmelding.

Dit soort fouten kun je voorkomen door een goede IDE te gebruiken, bijvoorbeeld de community edition van IntelliJ IDEA, Eclipse of Netbeans om maar een paar te noemen.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Er zit beweging in. Ik heb het haakje op regel 29 weggehaald en nu krijgt ik dit
code:
1
2
3
4
5
6
7
8
CijferLijst.java:30: error: illegal start of expression
        void addLeerlingInfo(Leerling leerling) {
        ^
CijferLijst.java:30: error: ';' expected
        void addLeerlingInfo(Leerling leerling) {
                            ^
CijferLijst.java:30: error: ';' expected
        void addLeerlingInfo(Leerling leerling) {

Acties:
  • +1 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op donderdag 18 april 2019 @ 22:49:
Er zit beweging in. Ik heb het haakje op regel 29 weggehaald en nu krijgt ik dit
We gaan niet bij elk stapje je handje vasthouden. Je weet nu in welke hoek 't zit dus begin nou eens gewoon met je haakjes allemaal te controleren / nalopen. En neem, zoals eerder aangegeven door @P-Storm en @Jorick , eens een fatsoenlijke IDE die je gewoon op dat soort fouten wijst.

[ Voor 3% gewijzigd door RobIII op 18-04-2019 22:53 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
Je moet er gewoon voor zorgen dat addLeerlingInfo voorkomt in de CijferLijst class. Dat is stap 1 en een kwestie van je accolades goed nalopen.

Daarna kun je je gaan afvragen of je de Leerling nog moet importeren. Maar dat zie je dan wel.

Ask yourself if you are happy and then you cease to be.


Acties:
  • 0 Henk 'm!

  • q-enf0rcer.1
  • Registratie: Maart 2009
  • Laatst online: 02-10 17:52
@Verwijderd Wellicht verstandig om je variabelen in het Engels te schrijven ipv Nederlands. Dat heeft het voordeel dat iedereen jouw code kan lezen. Deze code zou nu voor een buitenlander een stuk lastiger te begrijpen zijn.

Acties:
  • 0 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
q-enf0rcer.1 schreef op vrijdag 19 april 2019 @ 12:50:
@Verwijderd Wellicht verstandig om je variabelen in het Engels te schrijven ipv Nederlands. Dat heeft het voordeel dat iedereen jouw code kan lezen. Deze code zou nu voor een buitenlander een stuk lastiger te begrijpen zijn.
Op mijn werk levert dit leuke discussies op. We hebben namelijk vaak met branche specifieke vaktermen te maken die iedereen begrijpt in het Nederlands.

Als je die gaat vertalen naar het Engels, kost dit alleen maar tijd en geen hond die er wat aan heeft.

Iedereen begrijpt wat een pakbon is. Moet dat per se een delivery note of packing slip worden?

Onze klanten snappen dat niet, wij weten zelf niet eens goed hoe je het in het Engels zou noemen zonder het op te zoeken _O-

Niks mis met Nederlands als dat het voor iedereen duidelijk en eenvoudig houdt.

Ik heb een hele rest api opgezet in het Engels in samenwerking met een collega, maar ik kan achteraf niet echt zeggen dat het goed voelt.

Sommige dingen vertalen ook niet lekker. Bijvoorbeeld een "wit kenteken". Het beste wat ik ervan kon maken was "trailer plate". Maar als dat mij een half uur zoeken op internet kost, terwijl niemand daar wat aan heeft... mja.

Volgende keer wordt het gewoon weer Nederlands :P

Ask yourself if you are happy and then you cease to be.


Acties:
  • +1 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Wat hebben je klanten met je variabelen te maken? Wat je in je (G)UI doet is voor je klanten, go nuts, leef je uit. Maar in je code is het toch echt vrij gebruikelijk alles in 't Engels te houden.

addLeerlingInfo is al helemaal zoiets, dat is engels én nederlands doorelkaar... en als 't even kan, probeer dan zaken als "Info" of "Data" te voorkomen; dat voegt niets toe / is helemaal niets (maar ik geef toe 't soms wel te gebruiken als uitweg uit Foo en nog iets dat Foo<IETS> is maar dus niet Foo mag heten; dan plak ik bij gebrek aan fantasie nog wel eens iets als Info erachrer, maar dan eerder iets als RegistrationInfo bijvoorbeeld; dus dan krijg je FooRegistrationInfo .
Vehicle registration plate, number plate of Licenseplate.

Heel eerljik? Is 't niet gewoon een beetje gebrek aan kunde van de engelse taal? ;) Er zijn altijd dingen die ellendig vertalen ("tussenvoegsel" being one of them, omdat engelssprekenden dat hele concept vaak niet kennen). En ook hier hebben we wel eens een engelse vertaling gekozen die, achteraf, niet betekent wat we dachten of niet helemaal lekker vertaalt. Maar dat nog altijd 1000x liever (her-en-der een schoonheidsfoutje) dan een codebase die voor 50% uit nederlandsche meuk bestaat en de rest engels (for (int teller = 0; teller < 100; teller++) ... if (teller % 5 == 0) then...).

[ Voor 36% gewijzigd door RobIII op 19-04-2019 14:07 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Bas170
  • Registratie: April 2010
  • Niet online

Bas170

Sir Miss-a-Lot

RobIII schreef op vrijdag 19 april 2019 @ 13:59:
[...]
Vehicle registration plate, number plate of Licenseplate.

Heel eerljik? Is 't niet gewoon een beetje gebrek aan kunde van de engelse taal ;) Er zijn altijd dingen die ellendig vertalen ("tussenvoegsel" being one of them, omdat engelssprekenden dat hele concept vaak niet kennen).
Volgens mij dekt "license plate" de lading niet als ik de site van de RDW bekijk ;)
https://www.rdw.nl/partic...at/soorten-kentekenplaten (stukje naar beneden scrollen)


Zelf geef ik ook de voorkeur aan Engelse termen in de code, dat leest toch fijner (al kan dat met vaktaal inderdaad lastig zijn)

https://ifuckinghateJira.com
@CodeCaster: Ik kan niet anders dan concluderen dat Bas170 en Maarten van Rossem gelijk hebben


Acties:
  • 0 Henk 'm!

  • Stoelpoot
  • Registratie: September 2012
  • Niet online
Nee, een LicencePlate is een geel kenteken. Maar wat is dan een witte die specifiek voor een Trailer is?

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Stoelpoot schreef op vrijdag 19 april 2019 @ 14:04:
[...]


Nee, een LicencePlate is een geel kenteken. Maar wat is dan een witte die specifiek voor een Trailer is?
Oh, zo. Ja weet ik veel :P Ik zit niet in die business dus geen idee wat dan de correcte vertaling is. Maar als ik er een project mee zou starten zou ik dat zeker wel even uitzoeken. Ik denk / google liever een paar minuten dan dat ik dan maar zwicht en nederlands kies :P

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Freeaqingme
  • Registratie: April 2006
  • Laatst online: 04-10 21:59
RobIII schreef op vrijdag 19 april 2019 @ 13:59:
[...]

Wat hebben je klanten met je variabelen te maken? Wat je in je (G)UI doet is voor je klanten, go nuts, leef je uit. Maar in je code is het toch echt vrij gebruikelijk alles in 't Engels te houden.
Hier wordt doorgaans ook alles in het Engels geprogrammeerd. Echter, ik heb in het verleden wel projecten gedaan met heel specifieke vaktermen. Specifiek genoeg dat een Google Translate er bijv. geen raad meer mee wist. In eerste instantie hebben we toen getracht om aan de hand van een (zelf samengestelde) glossary alles in het Engels te doen, maar uiteindelijk leverde dat echt voor niemand meerwaarde op.

Conclusie was toen om bij vergelijkbare projecten de echt heel specifieke vaktermen in de taal te houden waarin de klant die aandraagt om verwarringen te voorkomen. Destijds zat er ook een Oekraïner op welke 0 Nederlands sprak, maar net zoals dat wij de Nederlandse vaktermen moesten leren heeft hij die dan ook gewoon in het Nederlands geleerd.

Dat even als sidenote bij specifieke vaktermen. Wat betreft de code van OP, ik denk dat nagenoeg alle landen wel het concept van leerlingen kennen, en veel landen ook wel het concept van cijferlijsten. Ergo, gewoon lekker alles in het Engels doen.

No trees were harmed in creating this message. However, a large number of electrons were terribly inconvenienced.


Acties:
  • 0 Henk 'm!

  • TweakerNummer
  • Registratie: September 2001
  • Niet online
Bas170 schreef op vrijdag 19 april 2019 @ 14:04:
[...]


Volgens mij dekt "license plate" de lading niet als ik de site van de RDW bekijk ;)
https://www.rdw.nl/partic...at/soorten-kentekenplaten (stukje naar beneden scrollen)


Zelf geef ik ook de voorkeur aan Engelse termen in de code, dat leest toch fijner (al kan dat met vaktaal inderdaad lastig zijn)
Dus dan maar een DutchTemporaryLicensePlate doen?

Acties:
  • 0 Henk 'm!

  • Bas170
  • Registratie: April 2010
  • Niet online

Bas170

Sir Miss-a-Lot

TweakerNummer schreef op vrijdag 19 april 2019 @ 14:24:
[...]

Dus dan maar een DutchTemporaryLicensePlate doen?
Ik zou zelf iets doen als WhiteTrailerPlate of LicensePlateMax750 (Die laatste klinkt meer als een gamertag)

https://ifuckinghateJira.com
@CodeCaster: Ik kan niet anders dan concluderen dat Bas170 en Maarten van Rossem gelijk hebben


Acties:
  • +1 Henk 'm!

  • Lethalis
  • Registratie: April 2002
  • Niet online
RobIII schreef op vrijdag 19 april 2019 @ 13:59:
[...]

Wat hebben je klanten met je variabelen te maken? Wat je in je (G)UI doet is voor je klanten, go nuts, leef je uit. Maar in je code is het toch echt vrij gebruikelijk alles in 't Engels te houden.

Vehicle registration plate, number plate of Licenseplate.

Heel eerljik? Is 't niet gewoon een beetje gebrek aan kunde van de engelse taal? ;)
Meestal ontwerp je een programma op basis van de use cases die je hebt geformuleerd met de klant en ik vind het eerlijk gezegd het makkelijkste om de termen die daar gebruikt worden simpelweg 1 op 1 te gebruiken in de code.

Zodra je daarvan afwijkt, maak je het ook moeilijker voor andere programmeurs en belanghebbenden om aan het project te werken.

Leuk voorbeeld hiervan is een narrowcasting systeem dat we ooit hebben opgezet voor de automotive branche. De schermen hingen gewoon bij garages. Maar nee, ons systeem moest natuurlijk heel flexibel opgezet worden en destijds was ik ook nog van het Engels, dus we gingen voortaan praten over "nodes" die bij "outlets" draaien.

Echt hoe vaak ik heb moeten uitleggen wat we eigenlijk bedoelen... pfff. Niet alleen aan klanten, maar ook aan onze eigen helpdesk, andere programmeurs, opdrachtgevers, marketingbureau's, enzovoorts. Niemand snapt het. Had het gewoon lekker een "scherm" genoemd dat bij een "garage" hangt en werkelijk - iedereen - had het meteen begrepen.

Voor de rest kan ik vrij goed Engels, ik heb zelfs 2 jaar lang elke dag Engels gesproken.

Een "license plate" dekt echter de lading niet als je het hebt over een wit kenteken, dat bedoeld is voor aanhangers. Dus je moet dan begrijpen welke soorten kentekenplaten er zijn, wat hun functie is en hoe deze worden gebruikt in het buitenland. Een "trailer plate" dekt de lading dan het beste en heb ik ook terug gevonden op Engelse en Amerikaanse websites waar je kentekenplaten kunt bestellen ;)

Maar daar ben je dan toch even een half uurtje mee bezig, terwijl het niemand interesseert. De klant interesseert het niet. Mijn collega's (behalve die ene sjappie :P ) interesseert het niet. Mijn werkgever interesseert het niet.

Het kost dus alleen maar tijd (en geld). En is verwarrend voor mensen die aan het project moeten werken.

Zolang de applicatie alleen voor de Nederlandse markt is, heb je dus met een gevalletje YAGNI te maken.

Daarnaast is het beheersen van een taal iets heel anders dan het beheersen van vaktermen. Ik heb de Duitse nationaliteit en tot ongeveer mijn pubertijd was Duits mijn primaire taal. Dat wil zeggen dat ik beter Duits sprak dan Nederlands.

Moet ik echter tegenwoordig met een Duitse softwareleverancier overleggen over iets, dan loop ik aan alle kanten vast. Ik kan prima over het weer en over voetbal lullen met ze, maar een web service, is een web service wat mij betreft en niet 1 of andere "Schnittstelle" ;)

Ask yourself if you are happy and then you cease to be.

Pagina: 1