13. januar 2003 - 10:14Der er
6 kommentarer og 1 løsning
Kald af metode uden objekt-angivelse
Da Java er temmelig nyt for mig, har jeg lige et enkelt fundamentalt spørgsmål. Normalt vil man kalde en metode i tilknytning til et objekt, altså f.eks. 'Objekt.metode()'. Undertiden ser jeg kald af metoder uden foranstillet objekt-angivelse, altså blot 'metode()'. Dette forekommer f.eks. ved kald fra en konstruktør, der anvender en af klassens metoder og altså ikke 'uden for klassen', hvor objekt-angivelsen vel selvsagt er obligatorisk. Hvornår giver det mening, og hvornår er det tilladt at kalde en metode uden tilknyttet objekt? Håber ikke spørgsmålet er for tåget.
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
ved ikke om jeg helt forstår, men du skal ikke angive objekt når metoden ligger i objekt selv eller er tilgængelig i dens superklasse, superklassens superklasse etc.
når du sige "din taske ligger vist inde i soveværelset" giver det kun mening hvis du (og den du taler til) er i det hus det soveværelse er i, hvis i ikke er det bør du sige "din taske ligger vist inde i soveværelset på forsythiavej 11; 4567 uddelby pr roskilde".
det handler om addressering, der skal angives tilstrækkelig meget adresse til at lytteren (eller Java-fortolkeren) kan være helt sikke på hvilket soveværelse (eller hvilken funktion)
næsten alle Java objekter har fx en toString() funktion der tager de data der ligger i et objekt og omformer dem til en tekststreng der kan udskrives. Men det er vidt forskellige funktioner i de forskellige objekter, så toString kan næsten aldrig kaldes uden at man samtidig fortæller hvilket objekt der er tale om. Det kan man så gøre ved at skrive objektnavn.toString().
Når der ikke står noget foran betyder det så "detteher objekt som vi allerede er i"
OK, jeg er med. Mere præcist er det vel rigtigt, at variabler og metoder, der er erklæret static kan kaldes indefra en klasse uden at foranstille klasse-navnet, mens klassenavnet skal foranstilles ved kald uden for klassen. Variabler og metoder, der er erklæret non-static kan kaldes indefra en klasse uden at foranstille objektnavn, alternativt kan 'this' foranstilles. Ved kald uden for klassen skal det konkrete objektnavn selvsagt foranstilles.
Jeg kommer forhåbentlig efter det :-) Har gennem mit arbejde programmeret i SAS i mange år, men Java er jo noget helt andet. Sproget indeholder så vidt jeg kan overskue i virkeligheden kun et begrænset antal byggeklodser, som man skal forstå, mens styrken ligger i de mange klasser, som man har adgang til. Eksempelvis er jeg vildt imponeret over Java3D-pakken.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.