class ClassA { private int FunktionA() { return 1; }
protected int FunktionB() { return 2; }
public int FunktionC() { return 3; }
public void DemoA() { int A = FunktionA(); // Lovligt. int B = FunktionB(); // Lovligt. int C = FunktionC(); // Lovligt. } }
class ClassB extends ClassA { public void DemoB() { int A = FunktionA(); // Ikke lovligt - FunktionA() er private i ClassA. int B = FunktionB(); // Lovligt. int C = FunktionC(); // Lovligt. } }
class ClassC { public void DemoC() { ClassA classA = new ClassA(); int A = classA.FunktionA(); // Ikke lovligt - FunktionA() er private i ClassA. int B = classA.FunktionB(); // Ikke lovligt - FunktionB() er protected i ClassA og ClassC arver ikke fra ClassA. int C = classA.FunktionC(); // Lovligt.
ClassB classB = new ClassB(); A = classB.FunktionA(); // Ikke lovligt - FunktionA() er private i ClassA. B = classB.FunktionB(); // Ikke lovligt - FunktionB() er protected i ClassA og ClassC arver ikke fra ClassA. C = classB.FunktionC(); // Lovligt. } }
class ClassA { private int FunktionA() { return 1; }
protected int FunktionB() { return 2; }
public int FunktionC() { return 3; }
public void DemoA() { int A = FunktionA(); // Lovligt. int B = FunktionB(); // Lovligt. int C = FunktionC(); // Lovligt. } }
class ClassB extends ClassA { public void DemoB() { int B = FunktionB(); // Lovligt. int C = FunktionC(); // Lovligt. } }
class ClassC { public void DemoC() { ClassA classA = new ClassA(); int B = classA.FunktionB(); // Ikke lovligt - FunktionB() er protected i ClassA og ClassC arver ikke fra ClassA. int C = classA.FunktionC(); // Lovligt.
ClassB classB = new ClassB();
B = classB.FunktionB(); // Ikke lovligt - FunktionB() er protected i ClassA og ClassC arver ikke fra ClassA. C = classB.FunktionC(); // Lovligt. } }
ClassA.java class ClassA { private int FunktionA() { return 1; }
protected int FunktionB() { return 2; }
public int FunktionC() { return 3; }
public void DemoA() { int A = FunktionA(); // Lovligt. int B = FunktionB(); // Lovligt. int C = FunktionC(); // Lovligt. } }
ClassB.java class ClassB extends ClassA { public void DemoB() { int B = FunktionB(); // Lovligt. int C = FunktionC(); // Lovligt. } }
ClassC.java
class ClassC { public void DemoC() { ClassA classA = new ClassA(); int B = classA.FunktionB(); // Ikke lovligt - FunktionB() er protected i ClassA og ClassC arver ikke fra ClassA. int C = classA.FunktionC(); // Lovligt.
ClassB classB = new ClassB();
B = classB.FunktionB(); // Ikke lovligt - FunktionB() er protected i ClassA og ClassC arver ikke fra ClassA. C = classB.FunktionC(); // Lovligt. } }
En private metode: Har class scope dvs. er kun tilgængelig i selve klassen
En protected metode: Har class, package og subclass scope
Class scope: Er tilgængelig fra klassen Package scope: Er tilgængelig hvis 2 klasser ligger i samme package/mappe Subclass scope: Er fra nedarvede klasser selvom de ikke ligger i samme package/mappe
nielle's eksempel skal se sådan ud
public class NewMain { public static void main(String[] args) { new ClassC().DemoC(); } }
class ClassA { private int FunktionA() { return 1; }
protected int FunktionB() { return 2; }
public int FunktionC() { return 3; }
public void DemoA() { int A = FunktionA(); // Lovligt. int B = FunktionB(); // Lovligt. int C = FunktionC(); // Lovligt. } }
class ClassB extends ClassA { public void DemoB() { //int A = FunktionA(); // Ikke lovligt - FunktionA() er private i ClassA. int B = FunktionB(); // Lovligt. int C = FunktionC(); // Lovligt. } }
class ClassC { public void DemoC() { ClassA classA = new ClassA(); //int A = classA.FunktionA(); Ikke lovligt - FunktionA() er private i ClassA. System.out.println("" + classA.FunktionB()); // LOVLIGT FORDI ClassA LIGGER I SAMME PACKAGE SOM ClassC System.out.println("" + classA.FunktionC()); // Lovligt.
ClassB classB = new ClassB();
//A = classB.FunktionA(); Ikke lovligt - FunktionA() er private i ClassA. System.out.println("" + classA.FunktionB()); // LOVLIGT FORDI ClassA LIGGER I SAMME PACKAGE SOM ClassC System.out.println("" + classA.FunktionC()); // Lovligt. } }
Springer over på denne her. _carsten's link far spot-on. :^)
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.