Toon posts:

Mijn adressenlijst

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi iedereen, ik loop weer even helemaal vast. Ik heb eerst deze klasse gemaakt:
code:
1
2
3
4
5
6
7
8
9
public class Adressenlijst {
public static void main(String args[]) {
String naam;
String straat;
int huisnummer;
String postcode;
String woonplaats;
}
}

Vervolgens maak ik deze klasse:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Adressenlijst2 {
public static void main(String args[])  {

Adressenlijst Jan = new Adressenlijst();
Adressenlijst Piet = new Adressenlijst();

Jan.naam = "Jan Natuurlijk";
Jan.straat = "Janstraat ";
Jan.huisnummer = 1;
Jan.postcode = "1111xx";
Jan.woonplaats = "Janneman";

Piet.naam = "Piet Natuurlijk";
Piet.straat = "Pietstraat ";
Piet.huisnummer = 9;
Piet.postcode = "9999xx";
Piet.woonplaats = "Pieterman";
}
}

En tenslotte deze:
code:
1
2
3
4
5
6
7
public class Adressenlijst3 {
public static void main(String args[])  {

System.out.println("Naam: " + Jan.naam + "\nAdres: " + Jan.straat + Jan.huisnummer + "\n" + Jan.postcode + Jan.woonplaats + "\n");
System.out.println("Naam: " + Piet.naam + "\nAdres: " + Piet.straat + Piet.huisnummer + "\n" + Piet.postcode + Piet.woonplaats + "\n");
}
}

Als ik nu de tweede klasse (adressenlijst2) wil compileren, krijg ik een heleboel van dit soort foutmeldingen:
code:
1
2
3
4
symbol:   variable postcode
location: variable Piet of type Adressenlijst
Adressenlijst2.java:19: error: cannot find symbol
Piet.woonplaats = "Pieterman";'

Ik weet eigenlijk niet zo goed wat ik nu verkeerd doe.

Beste antwoord (via Verwijderd op 27-03-2019 10:31)


  • Merethil
  • Registratie: December 2008
  • Laatst online: 21:45
Er gaan wat dingen mis in wat je nu aan het doen bent.
Ten eerste heeft niet elke class een main() method nodig, ik weet ook niet waarom je die overal toevoegt. Ten tweede heeft AddressenLijst2 nu allemaal variabelen die je in Adressenlijst3 aanroept, maar hoe zit de koppeling tussen die twee klassen volgens jou?

Gebruik je een IDE? Die zou hier een hoop waarschuwingen/errors moeten geven voor je ook maar aan compileren gaat denken.

Alle reacties


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • Merethil
  • Registratie: December 2008
  • Laatst online: 21:45
Er gaan wat dingen mis in wat je nu aan het doen bent.
Ten eerste heeft niet elke class een main() method nodig, ik weet ook niet waarom je die overal toevoegt. Ten tweede heeft AddressenLijst2 nu allemaal variabelen die je in Adressenlijst3 aanroept, maar hoe zit de koppeling tussen die twee klassen volgens jou?

Gebruik je een IDE? Die zou hier een hoop waarschuwingen/errors moeten geven voor je ook maar aan compileren gaat denken.

Acties:
  • +2 Henk 'm!

  • Stoelpoot
  • Registratie: September 2012
  • Niet online
De waardes die je in de main() van class Addressenlijst zet, zijn variabelen die binnen de functie worden gedeclareerd. Die kan je dus ook alleen in die functie aanroepen, niet in een andere functie en al helemaal niet in een andere class.

Zie ook hier voor wat meer uitleg dan ik nu snel kan geven met voorbeelden etc: https://www.geeksforgeeks.org/variable-scope-in-java/

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb de code nu als volgt verandert:
code:
1
2
3
4
5
6
7
public class Adressenlijst {
String naam;
String straat;
int huisnummer;
String postcode;
String woonplaats;
}

en
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class Adressenlijst2 {
public static void main(String args[])  {

Adressenlijst Jan = new Adressenlijst();
Adressenlijst Piet = new Adressenlijst();

Jan.naam = "Jan Natuurlijk";
Jan.straat = "Janstraat ";
Jan.huisnummer = 1;
Jan.postcode = "1111xx ";
Jan.woonplaats = "Janneman";

Piet.naam = "Piet Natuurlijk";
Piet.straat = "Pietstraat ";
Piet.huisnummer = 9;
Piet.postcode = "9999xx ";
Piet.woonplaats = "Pieterman";

System.out.println("Naam: " + Jan.naam + "\nAdres: " + Jan.straat + Jan.huisnummer + "\n" + Jan.postcode + Jan.woonplaats + "\n");
System.out.println("Naam: " + Piet.naam + "\nAdres: " + Piet.straat + Piet.huisnummer + "\n" + Piet.postcode + Piet.woonplaats + "\n");
}
}

Deze werkt wel helemaal. Super bedankt. Ik zou jullie allebei wel een beste antwoord willen geven.