对java中访问修饰符等的理解

基本的访问修饰符

名称描述使用范围
default在同一包中可见(默认)类,接口,变量,方法
private在同一类中可见(隐私)变量,方法
public对所有类可见(公开)类,接口,变量,方法
protected对所有同一包内类和所有子类可见(保护)变量,方法

首先类似数据结构,既然定义,那必要被人所用的,定是公开的,要么对所有类完全公开,要么对包内所有类公开。

包内定义类规则

     1. 一个包作为一系列类的集合不允许有重名类。

源文件内定义类规则

  1. 一个源文件内可以有多个非public类但最多只能有一个public类,也就是说一个源文件内允许多个类对包内公开,但只允许一个类完全公开。(这体现java 包这一环设计的作用是提供一系列对外完全公开的类)

不同包中的public同名类的优先级

问题描述

在某个类的所在包内和另一个包内各定义一个同名public类(设为Student),在mian中创建Student类,编译器会创建哪一个类呢?

  1. 在没有import导入test2包的情况下,默认创建同一包内的类

2.在import精确导入test2包内student的情况下,默认创建test2包内的类

3.在import粗略导入test2包的情况下,默认创建同一包内的类

若需使用想要非默认的类,则可用精确的路径。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值