Modificatori di ACCESSO
Modificatore di accesso | Effetto |
Public | visibile da qualsiasi parte del programma |
Private | visibile solo all’interno della stessa classe |
Protected | visibile solo dalle classi dello stesso package e da tutte le sottoclassi |
Default | visibile dallo stesso package e dalle sottoclassi se sono nello stesso package. È la visibilità assegnata di default se non viene specificato nulla. |
Esempio public
Il metodo o la variabile è visibile ovunque.
public class Animale { public int count; public static void main(String[] args) { Animale a = new Animale(); a.count = 20; } }
Esempio private
Il metodo o la variabile è visibile solo all’interno della stessa classe.
public class Animale { private int count; } public class Mucca extends Animale { public void hello() { count = 30;// errore di compilazione, variabile non visibile } } public class Prova { public static void main(String[] args) { Mucca a = new Mucca(); a.count = 20;// errore di compilazione, variabile non visi-bile } }
Esempio protected
Il metodo o la variabile è visibile solo dalle classi dello stesso package e da tutte le sottoclassi.
package it; public class Animale { protected int count; } package it; public class Mucca extends Animale { public void hello() { count = 30; } } package it; public class Prova { public static void main(String[] args) { Mucca a = new Mucca(); a.count = 20; } } package com; import it.Mucca; public class cane { public static void main(String[] args) { Mucca a = new Mucca(); a.count = 20;// errore di compilazione, campo non accessabi-le (package diverso, siamo in “com” mentre animale è in “it”) } }
Esempio default
Il metodo o la variabile è visibile dallo stesso package e dalle sottoclassi se sono nello stesso package.
package it; public class Animale { int count; } package it; public class Mucca extends Animale { public void hello() { count = 30; } } package com; import it.Animale; import it.Mucca; public class cane extends Animale{ public void hello() { count = 30;// errore di compilazione, campo non accessabile (siamo in package diversi, rispetto a animale) } public static void main(String[] args) { Mucca a = new Mucca(); a.count = 20;// errore di compilazione, campo non accessabi-le (siamo in package diversi, rispetto a animale) } }
Video Lezione sui Modificatori di Accesso in Java