1 van 1

[java] methode afschermen voor public maar niet voor andere klasse

Geplaatst: ma 05 dec 2011, 17:09
door jhnbk
Stel ik heb een klasse A en een klasse B: (exacte code doet er niet doe normaal)

Code: Selecteer alles

class A{

public void methode1(){

...

}

public void methode2(){

...

}

}

class B{

...

}
Kan ik er voor zorgen dat "iedereen" aan methode1 kan maar slechts de klasse B aan methode2? Ik zou het niet weten hoe het moet en ik vrees dat het ook niet gaat.

Re: [java] methode afschermen voor public maar niet voor andere klasse

Geplaatst: ma 05 dec 2011, 17:27
door 317070
Kan ik er voor zorgen dat "iedereen" aan methode1 kan maar slechts de klasse B aan methode2? Ik zou het niet weten hoe het moet en ik vrees dat het ook niet gaat.
Het kan, namelijk door B in dezelfde package te steken als A. Door in A geen modifier mee te geven aan de methode kan B er aan, maar C die niet in de package zit niet.

Een andere manier is door de methode private te maken, en B een geneste klasse te maken in A
Increased encapsulation—Consider two top-level classes, A and B, where B needs access to members of A that would otherwise be declared private. By hiding class B within class A, A's members can be declared private and B can access them.
Lees anders dit eens.

Re: [java] methode afschermen voor public maar niet voor andere klasse

Geplaatst: ma 05 dec 2011, 17:33
door jhnbk
Ah. Het kan blijkbaar toch :) Eerste methode lijkt mij het transparantste aangezien alles klassen samen de package zouden moeten vormen. Thx 317070!