Java Basics - Java access modifiers & Nonaccess modifiers

18 belangrijke vragen over Java Basics - Java access modifiers & Nonaccess modifiers

Wat gebeurt er als ik toch lokale variabele met een access modifier wil uitbreiden, of method parameters?

Dan compileert de code niet.

Wanneer is er sprake van package access in een class?

Wanneer er geen access modifier is gebruikt, dan wordt de default modifier ingeschakeld, ookwel package access genoemd.

Bekijk de afbeelding. De members in de class Book zijn allemaal protected, wat betekent dit voor de access en welke classen kunnen erbij?




The members of a class defined using the protected access modifier are accessible to
  • Classes and interfaces defined in the same package
  • All derived classes, even if they’re defined in separate packages

  • Hogere cijfers + sneller leren
  • Niets twee keer studeren
  • 100% zeker alles onthouden
Ontdek Study Smart

Stel we hebben een object A die extends object B.
Object B heeft een private int a.

class B {
protected int test;
}

Kan A bij deze variabele test komen?

Ja

Stel we hebben een object A die extends object B. Dit binnen een ander package.


Object B heeft een private int a.

class B {
protected int test;
}

class A {

public A() {
B b = new B();
b.test=1;

}


}

Kan bovenstaande?

Nee, test is protected. Dan moet A direct verwijzen naar zijn eigen variabele 'test'.

Wat voor een foutmelding komt er als een class uit een andere package instantieerd en hier een default methode op aanroept?





House.java:9: cannot find symbol symbol : method issueHistory() location: class building.House issueHistory();

KAN HEM NIET VINDEN! IS NIET EXPOSED!

Wat wordt de foutmelding als men een default access class wil importeren in andere class uit een ander package??




House.java:2: library.Book is not public in library; cannot be accessed from outside package

import library.Book;

KAN HEM WEL VINDEN MAAR MAG NIET BUITEN PACKAGE!

Wat is de beste manier om een asbstracte methode toe te voegen aan een concrete class?

Dit mag niet, mag alleen bij abstracte classen.

Wat gebeurt er als je een interface abstract maakt?



abstract interface Movable {}




Dat is overbodig, java zet er zelf al abstract voor!

Wanneer is een methode abstract?

Alleen als er asbtract voor staat! En er mag ook geen body {} zijn anders compileert hij niet.




public abstract void perform();

Kan ik de abstract non access modifier ook op variabelen toepassen

NEE dit kan NOOIT

Wat gebeurt er als de volgende code wordt gecompileerd



final class Person {} class Professor extends Person {}




Compileert niet! Person is final!

Wat is de melding als de volgende code compileert:



final interface MyInterface{}

Kan niet, interface is altijd al abstract!

Wat zijn de eigenschappen van een final variabele?

Je kan een final variabele maar 1 keer assignen, reassignen mag dan niet meer!
Bij reference variabele mag je de referentie niet veranderen maar WEL de methods aanroepen.




class Person { final StringBuilder name = new StringBuilder("Sh"); Person() { name.append("reya"); name = new StringBuilder();
Can call methods on a final variable


} }

Wat zijn de eigenschappen van een final method?

Kan niet overschreven worden in een derived class.

Wat zijn de 2 manieren om static variabelen aan te roepen?

Via de referentie van het obect (instantie) of gewoon via de class. Eerste is niet aan te raden.

In welk geval kan ik een class static definieren?

Kan niet als top-level class. Kan alleen binnen een andere class als innerclass of interface.

Wat is de relatie tussen static members en niet static members?

Niet static methoden en variabelen kunnen statics aanroepen. Echter omgekeerd kan nooit.

De vragen op deze pagina komen uit de samenvatting van het volgende studiemateriaal:

  • Een unieke studie- en oefentool
  • Nooit meer iets twee keer studeren
  • Haal de cijfers waar je op hoopt
  • 100% zeker alles onthouden
Onthoud sneller, leer beter. Wetenschappelijk bewezen.
Trustpilot-logo