2016-06-10 3 views
0

Je sais pourquoi private et protected sont des modificateurs illégaux pour une classe mais pourquoi la valeur par défaut n'est pas acceptable. Je pense que si nous ne spécifions aucun modificateur d'accès, default est assigné. Mais le taper explicitement comme default class Student me donne une erreur de syntaxePourquoi ne pouvons-nous pas spécifier le modificateur d'accès par défaut pour une classe?

+0

Il n'y a pas accès niveau comme "défaut". Un niveau d'accès est l'un de ces quatre: "public", "privé", "protégé" ou "paquet-privé". Le dernier n'est pas un mot-clé, et ne peut être spécifié que comme l'absence d'un modificateur. L'accès par défaut (lorsqu'il n'y a pas de modificateur) dépend de ce qu'est la chose et de l'endroit où elle se trouve; En général, c'est un paquetage privé, mais les membres des interfaces sont publics par défaut, et les constructeurs d'enum sont privés par défaut. – Boann

Répondre

1

Le modificateur d'accès par défaut de Java peut être utilisé en omettant tout modificateur d'accès. Java 8 a introduit un nouveau mot-clé default utilisé pour fournir une implémentation par défaut pour la méthode d'une interface mais, malgré son nom et son emplacement confus dans la déclaration de la méthode, il n'a rien à voir avec les modificateurs d'accès.

+0

Pouvez-vous fournir un cas d'utilisation du mot clé 'default', sauf pour l'interface Java 8? – Manoj

1

Une classe peut être déclarée avec le public modificateur, et « nomodifier », mais pas le sens du lieu de mot clé nomodifier « default »

s'il vous plaît passer par ce lien https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

+0

Mais Java a fourni 'default' comme mot-clé. Où est-il utilisé, sauf dans les méthodes d'interface par défaut – Manoj

+0

@Manoj La seule autre utilisation du mot-clé 'default' est dans l'instruction [' switch'] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts /switch.html). – Boann