Toon posts:

Hoe kan je vanaf class A class B benaderen (Java) ?

Pagina: 1
Acties:

Vraag


  • Ralfefernandes
  • Registratie: Juli 2007
  • Laatst online: 24-11-2022
Beste Tweakers,

Ik wil graag class B < public void> benaderen vanaf class A

Het is mij gelukt om class B te benaderen, maar nu wil ik: invoerIntegerKeuze benaderen, maar helaas, het lukt mij steeds niet...


code:
1
2
3
4
5
6
7
8
9
invoerKeuze.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent actionEvent) {
                String invoerNaamKeuze = invoerKeuze.getText();
                int invoerIntegerKeuze = Integer.parseInt(invoerNaamKeuze);
                 new problemas();

            }
        });


Thanks,
Fernando

Beste antwoord (via Ralfefernandes op 27-09-2018 02:33)


  • PageFault
  • Registratie: April 2002
  • Laatst online: 31-05 13:50
invoerIntegerKeuze is een lokale variabele binnen een method, buiten deze method bestaat deze niet eens.

In OOP is het het concept om variabele niet rechtstreeks van buiten benaderbaar te maken, dus je moet dan een set en get method schrijven. Maar om dat te doen, moet invoerIntegerKeuze een private variabele binnen de class zijn en niet in de method.

Alle reacties


  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 00:20

The Eagle

I wear my sunglasses at night

Ik kan me niet voorstellen dat dit niet inclusief een shitload aan voorbeelden op internet te vinden is.
Wat had je zelf al gezocht, gevonden, en waarom werkte dat miet? :)

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


  • hoi1234
  • Registratie: Augustus 2012
  • Laatst online: 07:09
Java:
1
2
ClassB b = new ClassB();
b.<variabelenaam of functie>

Maar je moet je wel even afvragen of wat jij wil wel goede code is. Je moet wel met een goede reden instanties van een klasse in een andere klasse initialiseren. Een klasse moet zo dom mogelijk zijn.

Of is dit niet wat je bedoelt? De vraag is nogal vaag vind ik. Als dit echt is wat je bedoelt, dan zou ik nog een keer de principes van OO programmeren goed herhalen.Sowieso gebruik je Nederlands en Engels door elkaar. Moet je niet doen. Wees consequent.

  • tollie1000
  • Registratie: Februari 2009
  • Laatst online: 15-02-2019
Class B is de databron en en class A de ontvanger. Dit is een mooi voorbeeld in C#. Kun je vast wel omschrijven naar java: https://www.codeproject.c...le-Imaginable?msg=3184456

Mvgr

  • Hydra
  • Registratie: September 2000
  • Laatst online: 00:12
Als je zelf met Java aan de slag gaat kan ik je aanraden met deze cursus bezig te gaan: https://mooc.fi/courses/2013/programming-part-1/

Daar worden dit soort basis OOP zaken prima uitgelegd. Je bent nu met User Interface programmeren begonnen terwijl je de basis nog niet onder de knie hebt, en daar kun je dus beter even mee wachten.

https://niels.nu


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

  • PageFault
  • Registratie: April 2002
  • Laatst online: 31-05 13:50
invoerIntegerKeuze is een lokale variabele binnen een method, buiten deze method bestaat deze niet eens.

In OOP is het het concept om variabele niet rechtstreeks van buiten benaderbaar te maken, dus je moet dan een set en get method schrijven. Maar om dat te doen, moet invoerIntegerKeuze een private variabele binnen de class zijn en niet in de method.

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 02:19
Snap je het verschil tussen een class en een object? Want ik heb het sterke vermoeden dat je helemaal niet class B wil benaderen, maar een specifiek object dat toevallig van het type "class B" is. En je weet vermoedelijk niet precies wélk object.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • Ralfefernandes
  • Registratie: Juli 2007
  • Laatst online: 24-11-2022
MSalters schreef op woensdag 26 september 2018 @ 11:23:
Snap je het verschil tussen een class en een object? Want ik heb het sterke vermoeden dat je helemaal niet class B wil benaderen, maar een specifiek object dat toevallig van het type "class B" is. En je weet vermoedelijk niet precies wélk object.
Tuurlijk weet ik wel wat ik wil benaderen, en als ik het niet wist wat ik wil, dan had ik waarschijnlijk deze vraag niet gesteld.

En ik weet ook welke object ik graag wil benaderen, want die object heb ik zelf gemaakt.

De reden dat ik class c wil benaderen is omdat dat in class A, heeft de gebruiker moeten inloggen. En nu wil ik de ingelogd naam gebruiken in class c.

Daarvoor heb ik al 2 applicaties gemaakt: applicatie A, applicatie b en applicatie c… in applicatie c, wil ik de naam van de gebruikers tonen en hoeveel punten hebben ze in totaal behaald.

  • leverage010
  • Registratie: Oktober 2012
  • Laatst online: 10-04 19:48
Heel fijn om om hulp te vragen met gebrekkige informatie. post wat goed geformatteerde lappen code en het probleem zal zich duidelijker voordoen bij de andere devs.

Je definieert een nieuwe ActionListener binnen in de functie AddActionListener. Binnen in die Actionlistener declareer je:
int invoerIntegerKeuze = Integer.parseInt(invoerNaamKeuze);
Om deze reden zal "invoerIntegerKeuze " alleen bereikbaar zijn binnen in de scope van die functie, dus zo lang je in de actionlistener zit, kan je daar wat mee doen. Voor alle code buiten die actionlistener is die declaratie niet "zichtbaar".

Dit is iets waar veel nieuwe programmeurs mee in de knoei lopen. Je moet je eigenlijk herinneren aan het feit dat de code gewoon in chronologische volgorde af gegaan wordt, en dat de scope van de declaratie de "accessability" bepaald van de variabele.

tevens..je praat over Class A, B, en C, maar wij kunnen met geen mogelijkheid opmaken wat deze classes zijn. Ze zouden Private kunnen zijn, Misschien Static, Misschien verwijs je naar een veriabele die niet in die scope gedefinieerd is. Post je hele code voordat je van ons verwacht om een zinnig antwoord te kunnen geven.

Als ik zeg "Ik wil graag koekjes bakken maar als ik ingredient A meng met Ingredient B krijg ik geen koekjes" heb jij dan een flauw idee van wat ik zeg?

  • eric.1
  • Registratie: Juli 2014
  • Laatst online: 08:05
Ralfefernandes schreef op donderdag 27 september 2018 @ 12:13:
[...]


Tuurlijk weet ik wel wat ik wil benaderen, en als ik het niet wist wat ik wil, dan had ik waarschijnlijk deze vraag niet gesteld.

En ik weet ook welke object ik graag wil benaderen, want die object heb ik zelf gemaakt.

De reden dat ik class c wil benaderen is omdat dat in class A, heeft de gebruiker moeten inloggen. En nu wil ik de ingelogd naam gebruiken in class c.

Daarvoor heb ik al 2 applicaties gemaakt: applicatie A, applicatie b en applicatie c… in applicatie c, wil ik de naam van de gebruikers tonen en hoeveel punten hebben ze in totaal behaald.
Geen touw aan vast te knopen. Dan laat je ook nog compleet irrelevante code zien (voor jouw vraag / probleem), waar heel die classes niet in voorkomen.

Laat dan op zijn minst je classes zien...en welke functie/variabele je daaruit nodig hebt (en vanuit welke functie/class).

  • paulh
  • Registratie: Juli 1999
  • Laatst online: 23-03 18:40
Het ActionEvent heeft een methode getSource... Deze verwijst denk ik naar jouw invoerKeuze object. Daar kan je dan de text aan opvragen. Je zult hem waarschijnlijk nog wel moeten casten.

[Voor 15% gewijzigd door paulh op 01-10-2018 12:55. Reden: extra verduidelijking]

[ZwareMetalen.com] - [Kom in aktie tegen de CO2 maffia]


  • Ralfefernandes
  • Registratie: Juli 2007
  • Laatst online: 24-11-2022
Ik heb inmiddels opgelost
Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee