Java程序员的日常 —— 《编程思想》包和访问权限
包的作用
在C++中有命名空间的概念,这是因为,不同的项目或者人写出来的代码,可能名称是一样的。比如,java.util中有List,java.awt中也有List,那么我们在开发中,怎么会知道使用的是哪一个List呢?
在Java中是使用包来管理的,比如你可以这样使用:
import java.util.ArrayList;
java.util.List list = new ArrayList();
既可以像第一行那样,使用import引用包;也可以直接在Java代码中指定包的路径。一般来说,都是使用前者,这样代码比较简洁。
另外,Java中如果你的Java类中使用pacakge 声明了所在的包。那么编译后,需要通过路径才能访问。比如:
package xing.test.thinking.chap6.local;
public class Test{}
想要使用Test这个类,那么Test.class就需要放在xing/test/thinking/chap6/local目录中才行,不然就会报NoClassDefFoundError这种错。
访问权限
在Java中,有下面几种访问权限:
- public:谁都可以访问
 - protected: 只有子类才能访问
 - private:只有自己才能访问
 - 包访问权限(默认):同处一个包下的类都能相互访问
 
一般来说,任何的属性没有特殊要求,都应该是Private权限的。这样可以保证类之间的独立性。
控制成员访问的意义:
- 使用户不要触碰那些不该触碰的部分
 - 让类库设计者可以更改类的内部实现,而不需要担心对其他的使用者产生过大的影响。
 
Java程序员的日常 —— 《编程思想》包和访问权限的更多相关文章
- Java程序员的日常——经验贴(纯干货)
		
工作当中遇到的事情比较杂,因此涉及的知识点也很多.这里暂且记录一下,今天遇到的知识点,纯干货~ 关于文件的解压和压缩 如果你的系统不支持tar -z命令 如果是古老的Unix系统,可能并不认识tar ...
 - Java程序员的日常—— 《编程思想》关于类的使用常识
		
Java虽然利用JVM,让程序员可以放心大胆的使用,可是仍然会出现内存泄露等问题.世上没有绝对的银弹,因此也不能完全把所有的任务都交给JVM,了解Java中的初始化与垃圾回收还是必不可少的知识. 关于 ...
 - Java程序员的日常——《编程思想》一切都是对象
		
今天终于看完了第一章,哈哈,万事开头难....刚开始被编程思想的第一章给蒙住了,讲一堆理论,没什么意思.从第二章开始,真正的开始讲解Java相关的内容,有了一定的开发经验后,再次阅读起来,感觉收获良多 ...
 - Java程序员的日常 —— 工作一天的收获
		
看题目可能是扯皮,其实还是有很多专业知识的.从最开始没有注意到设计原则,到后面的jquery实战技巧,都是今天一天碰到的问题. 每天整理一点点,每天收获一点点. 关于软件设计 在设计系统结构的时候,一 ...
 - Java程序员的日常—— Properties文件的读写
		
在日常的Java程序开发中,Properties文件的读写是很常用的.经常有开发系统通过properties文件来当做配置文件,方便用户对系统参数进行调整. 那么本片就来简单的介绍下,如何使用Prop ...
 - Java程序员的日常—— 垃圾回收中引用类型的作用
		
在Java里面,是不需要太过于关乎垃圾回收,但是这并不意味着开发者可以不了解垃圾回收的机制,况且在java中内存泄露也是家常便饭的事情.因此了解垃圾回收的相关知识就显得很重要了. 引用,在垃圾回收中是 ...
 - Java程序员的日常 —— 多进程开发
		
最近再弄进程管理相关的工作,因此必要的就涉及到各种系统下关于进程的管理. 这里简单的介绍下: 如何在Java中执行命令 在windows下肯定是dos命令了,而在linux则为shell命令.执行的方 ...
 - 《 Java 编程思想》CH06 访问权限控制
		
访问控制(或隐藏具体实现)与"最初的实现并不恰当"有关. 重构即重写代码,以使得它更可读,更容易理解,并因此而更具维护性. 在面向对象设计中需要考虑一个基本问题:"如何把 ...
 - Java编程思想学习(四) 访问权限
		
几种访问权限修饰词 public,protected,private,friendly(Java中并无该修饰词,即包访问权限,不提供任何访问修饰词) 使用时,放置在类中成员(域或方法)的定义之前的,仅 ...
 
随机推荐
- asp.net TreeView控件绑定数据库显示信息
			
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
 - SQL Server数据库表重置自增主键号(通常是指ID)
			
执行 DBCC CHECKIDENT ('table_name', NORESEED) 以确定列中的当前最大值 然后使用 DBCC CHECKIDENT ('table_name', RESEED,n ...
 - JavaScript初学者应注意的七个细节(转)
			
http://www.cnblogs.com/lhb25/archive/2011/01/10/1932284.html 每种语言都有它特别的地方,对于JavaScript来说,使用var就可以声明任 ...
 - poj 2891 Strange Way to Express Integers (非互质的中国剩余定理)
			
Strange Way to Express Integers Time Limit: 1000MS Memory Limit: 131072K Total Submissions: 9472 ...
 - log4net记录日志到数据库自定义字段
			
假设数据库中有如下自定义字段: 1.根据自定义字段定义日志信息对象 public class MessageLog { /// <summary> ...
 - css控制页面打印(分页、屏蔽不需要打印的对象)
			
样式: <style media="print"> .Noprint { DISPLAY: none;} .PageNext { ...
 - php 解析 视频 信息 封面 标题 图片 支持 优酷, 土豆 酷6 56 新浪 qq播客 乐视 乐视
			
原文地址:http://www.lianyue.org/2013/2497/ <?php /** * 解析 视频信息 类 * * 支持 优酷, 土豆 酷6 56 新浪 qq播客 乐视 乐视 ** ...
 - C# WebClient 实现上传下载网络资源
			
下载数据 WebClient wc = new WebClient();1 string str= wc.DownloadString("地址")://直接下载字符串 2 wc.D ...
 - [MongoDB]Mongodb攻略
			
-------------------------------------------------------------------------------------------- [基础] 1. ...
 - linux开启oracle服务
			
linux下启动oracle su - oracle sqlplus /nolog conn /as sysdba startup exit lsnrctl start exit 2. linux下关 ...