Pentium 233MHz MMX + Diamond Monster 3D 3DFX Voodoo II
Java (zo te zien) kent geen 'friends' zoals C++, dus is het niet mogelijk wat jij wilt, aangenomen dat beide klassen 'public' moeten zijn.
Als je dit echt heel erg percee wilt, kan je nog naar inner-classes grijpen, maar daar wordt het allemaal niet fraaier op.
Ook kan je via een hele ranzige constructie wel achterhalen vanuit welke klasse een methode wordt aangeroepen, maar ook dat kan ik je niet aanraden aangezien dit slechts een runtime check is.
Geen nette oplossing dus
.
Als je dit echt heel erg percee wilt, kan je nog naar inner-classes grijpen, maar daar wordt het allemaal niet fraaier op.
Ook kan je via een hele ranzige constructie wel achterhalen vanuit welke klasse een methode wordt aangeroepen, maar ook dat kan ik je niet aanraden aangezien dit slechts een runtime check is.
Geen nette oplossing dus
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
dit is misschien een stomme vraag, maar waarom wil je dat doen?
groeten
heb mischien al een oplossing, weet alleen niet of het werkt 
mBravenboer, is dit wat je bedoelde met innerclasses??
Bas, dit is voor m'n MSN client, het is de bedoeling dat de gebruiker van m'n package zo min mogelijk kan verne*ken
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
| public class AClass
{
...
public BClass getBClass()
{
CClass cClass = new CClass();
cClass.setVarX('x');
cClass.setVarY(3);
cClass.setVarZ("variabele z");
return (BClass)cClass;
}
private class CClass extends BClass
{
public void setVarX(char c) x = c;
public void setVarY(int i) y = i;
public void setVarZ(String s) z = s;
}
}
public class BClass
{
protected char x;
protected int y;
protected String z;
...
} |
mBravenboer, is dit wat je bedoelde met innerclasses??
Bas, dit is voor m'n MSN client, het is de bedoeling dat de gebruiker van m'n package zo min mogelijk kan verne*ken
Pentium 233MHz MMX + Diamond Monster 3D 3DFX Voodoo II
Ja, dit werkt inderdaad wel, maar het is niet zo netjes om alleen maar om deze reden een inner-class te gaan gebruiken.NDF82: mBravenboer, is dit wat je bedoelde met innerclasses??
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment
*kuch kuch*Op vrijdag 26 juli 2002 20:18 schreef mbravenboer het volgende:
Ook kan je via een hele ranzige constructie wel achterhalen vanuit welke klasse een methode wordt aangeroepen.
Ik ben zelf ook wel eens met dit soort dingen bezig geweest, om alles zo dicht mogelijk te timmeren. Meestal gaat je ontwerp volledig in de vernieling, en ik doe er niet meer zo moeilijk over. Tenzij je echt een erg goeie reden hebt (data corruptie ed) zou ik gewoon hier van afzien.
ps: eventueel kan je die 'gevaarlijke methodes' ook protected of friendly maken (dus geen access modifier). Hierdoor kan jij alleen bij methodes komen, en iemand die in een andere package zit niet.
ps2: de gebruiker van jouw api die kan dit ook nog weer zelf omzeilen, door een nieuwe package te maken gelijk aan die van jouw. Dus als jij com.msn hebt voor jouw api, dan moet die eind gebruiker die ook aanmaken, en dan kan hij alsnog bij jouw ontoegankelijke methodes want hij zit in principe in dezelfde package
Pagina: 1