package与存取权限
来源:互联网 发布:男友活好的体验 知乎 编辑:程序博客网 时间:2024/04/27 03:57
在Java 語法中,有三個存取修飾:public、protected與private。但事實上,有四個權限範圍即还有包访问权限(有时也表示成为friendly)。
如果你在宣告類別時沒有加上任何存取修飾,則預設為package存取範圍,該類別僅限於同一個package下的成員所使用。如果宣告類別成員(資料成員或方法成員)時沒有加上任何存取修飾,則預設為package存取範圍,該類別成員僅限於同一個package下的成員所使用。
如果在宣告類別成員時,其存取修飾超過類別存取修飾,則類別成員的存取類別修飾受到約束,也就是以類別上的存取修飾為類別成員的存取修飾。例如:
在這個程式碼中,Some類別為package存取範圍,而data宣告為public存取範圍,則最後data受到Some的約束,為package存取範圍。
被private修飾之成員,僅限類別內部使用,無論是子類別、任何外部類別,都不準直接存取。
被protected修飾之成員,則限同一 package成員直接存取,其它package的成員,必須透過繼承的方式,才可以在子類別中存取該成員。
被public修飾之成員,可以被所有成員存取,為最廣之存取範圍。
下表為四個存取權限與package之間的關係,OK表示該範圍中的成員可以存取:
存取修飾同一類別同一套件不同套件的子類別不同套件的非子類別privateOKdefaultOKOKprotectedOKOKOK
publicOKOKOKOK
如果定義類別時,沒有設定package,並非沒有package,而是設定為default package。default package無法import。
回憶一下 package 分类管理 中說過:當編譯器看到一個沒有package名稱的類別名稱,會先在同一個目录範圍下尋找類別(参考java编程思想四版 6.2访问权限修饰词 默认包部分 p117),如果找到就使用,如果沒找到,再試著從import陳述的部份比別。依此說明,由於default package中的類別無法import,就等於限制default package下的類別只能為default package下的成員所使用。不建議使用defult package,應該用package將類別分門別類加以置放。
如果你在宣告類別時沒有加上任何存取修飾,則預設為package存取範圍,該類別僅限於同一個package下的成員所使用。如果宣告類別成員(資料成員或方法成員)時沒有加上任何存取修飾,則預設為package存取範圍,該類別成員僅限於同一個package下的成員所使用。
如果在宣告類別成員時,其存取修飾超過類別存取修飾,則類別成員的存取類別修飾受到約束,也就是以類別上的存取修飾為類別成員的存取修飾。例如:
class Some {
public int data;
}
public int data;
}
在這個程式碼中,Some類別為package存取範圍,而data宣告為public存取範圍,則最後data受到Some的約束,為package存取範圍。
被private修飾之成員,僅限類別內部使用,無論是子類別、任何外部類別,都不準直接存取。
被protected修飾之成員,則限同一 package成員直接存取,其它package的成員,必須透過繼承的方式,才可以在子類別中存取該成員。
被public修飾之成員,可以被所有成員存取,為最廣之存取範圍。
下表為四個存取權限與package之間的關係,OK表示該範圍中的成員可以存取:
存取修飾同一類別同一套件不同套件的子類別不同套件的非子類別privateOKdefaultOKOKprotectedOKOKOK
publicOKOKOKOK
如果定義類別時,沒有設定package,並非沒有package,而是設定為default package。default package無法import。
回憶一下 package 分类管理 中說過:當編譯器看到一個沒有package名稱的類別名稱,會先在同一個目录範圍下尋找類別(参考java编程思想四版 6.2访问权限修饰词 默认包部分 p117),如果找到就使用,如果沒找到,再試著從import陳述的部份比別。依此說明,由於default package中的類別無法import,就等於限制default package下的類別只能為default package下的成員所使用。不建議使用defult package,應該用package將類別分門別類加以置放。
- package与存取权限
- 文件存取权限与设置set_uid位
- 存取权限
- MySQL - 存取权限系统
- 存取权限系统
- UNIX文件存取权限
- mysql权限存取过程
- MySQL 存取权限系统
- 6 MySQL 存取权限系统
- linux文件的存取权限
- 复合与存取方法
- 包package,权限修饰符
- 包package和访问权限
- 学习手册之MySQL存取权限系统
- 中文参考手册---6MySQL存取权限系统
- linux access函数判断文件存取权限
- linux access函数判断文件存取权限
- UNIX系统的文件属性和存取权限
- 【mysql连接池】之php+sqlrelay+mysql实现连接池及读写负载均衡 .
- 系统分析师书籍推荐
- 避免参数嗅探带来的资源消耗
- struts2防止重复提交方法
- sql server 中使用OBJECT_ID 总结
- package与存取权限
- DirectX 9.0 C++ 教程 字体 迟到的helloworld
- Fedora下解压缩的相关问题
- java环境变量配置
- visual studio内置“iis”组件提取及二次开发
- 2001-2004年上午试题知识点分布
- CoreData学习笔记(一)
- SQL Ralay数据库连接池的PHP操作【代码级】
- linux下练习 c++ 栈中使用类模版例子