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权限的。这样可以保证类之间的独立性。

控制成员访问的意义:

  • 使用户不要触碰那些不该触碰的部分
  • 让类库设计者可以更改类的内部实现,而不需要担心对其他的使用者产生过大的影响。

本文转自博客园xingoo的博客,原文链接:Java程序员的日常 —— 《编程思想》包和访问权限,如需转载请自行联系原博主。

时间: 2024-10-21 11:40:48

Java程序员的日常 —— 《编程思想》包和访问权限的相关文章

Java程序员的日常—— 《编程思想》关于类的使用常识

Java虽然利用JVM,让程序员可以放心大胆的使用,可是仍然会出现内存泄露等问题.世上没有绝对的银弹,因此也不能完全把所有的任务都交给JVM,了解Java中的初始化与垃圾回收还是必不可少的知识. 关于构造器 在C中,如果要使用变量需要先申请内存.在Java中,如果你需要创建一个对象,也可以直接new出来,JVM会自动帮你管理. 默认的类,会自动有一个无参的构造方法,当然你也可以自己定义有参的构造方法.但是要注意,一旦自己定义了,就不再帮你自动创建无参的构造方法了. 一个类可以有多种构造方法,通过

Java程序员的日常 —— 工作一天的收获

看题目可能是扯皮,其实还是有很多专业知识的.从最开始没有注意到设计原则,到后面的jquery实战技巧,都是今天一天碰到的问题. 每天整理一点点,每天收获一点点. 关于软件设计 在设计系统结构的时候,一些软件设计方法,还是很重要的. 比如开闭原则,开闭原则就是: 对扩展是开放的 对修改是关闭的 要做到上面两点,就需要在设计应用架构时,理清核心的需求点.完成一个解决问题需求的最小的.最核心的设计结构.其他的业务逻辑或者应用需求,应该都是基于这个核心结构进行扩展. 再来说说软件设计的6大原则: 开闭原

Java程序员的日常——经验贴(纯干货)

工作当中遇到的事情比较杂,因此涉及的知识点也很多.这里暂且记录一下,今天遇到的知识点,纯干货~ 关于文件的解压和压缩 如果你的系统不支持tar -z命令 如果是古老的Unix系统,可能并不认识tar -z命令,因此如果你想要压缩或者解压tar.gz的文件,就需要使用gzip或者gunzip以及tar命令了. 关于tar.gz可以这么理解,tar结尾的压缩包,其实只负责把文件打包,并没有进行压缩:而gz结尾的包,则是进行压缩操作. 因此,tar.gz的文件可以理解为,先进行打包,再进行压缩. 那么

Java程序员的日常——经验贴(纯干货)二

继昨天的经验贴,今天的工作又收获不少. windows下编辑器会给文件添加BOM 在windows的编辑器中,为了区分编码,通常会添加一个BOM标记.比如,记事本.nodepade++.sublimeText都会出现这个问题.如果使用filereader去读,就会发现第一行出现了乱码: 123 查看其bytes可以发现为: [-17] [-69] [-65] [49] [50] [51] 此时,可以使用编辑器比如nodepad++,点击encoding,设置为encode with utf

Java程序员的日常—— POI与JDBC、Mockmvc与单元测试

周日没怎么休息好,周一一天都迷迷糊糊的,不过还算是干了不少的活. 总结一下,大致有以下几点内容: 1 使用poi以及mysql jdbc实现了一个复杂excel的导入 2 基于工程原有的代码,书写spring mvc的业务代码以及测试用例 使用POI以及jdbc POI是用于处理excel文件很常用的工具,如果你的excel是比较老的版本,记xls结尾的,那么只使用poi就行了.如果是xlsx结尾的,还需要引入xssf的jar包. 参考maven的pom.xml配置: <!-- https://

Java程序员的日常—— Spring Boot单元测试

关于Spring boot 之前没有用Spring的时候是用的MockMvc,做接口层的测试,原理上就是加载applicationContext.xml文件,然后模拟启动各种mybatis\连接池等等. 后来web工程改造成了Spring boot,首先发生变化的就是配置文件,原来的xml改成了proerties或者yml.另外,原来的http接口改成了dubbo,接口层的测试就更困难了. 所以单元测试改成了直接对service层的测试,即按照原来的模式,模拟启动applicationConte

Java程序员的日常——存储过程知识普及

存储过程是保存可以接受或返回用户提供参数的SQL语句集合.在日常的使用中,经常会遇到复杂的业务逻辑和对数据库的操作,使用存储过程可以进行封装.可以在数据库中定义子程序,然后把子程序存储在数据库服务器,之后通过名称调用. 特点 1 提高性能 存储过程是预先编译过,进行优化后,存储在SQL的内存中,使用的时候不需要重新编译,提高工作效率. 2 减少网络流量 存储过程的代码直接存储在数据库中,用户通过名称进行调用,减小网络流量,加快执行速度.如:百万以上的数据查询,存储过程分页要比其他方式的分页快得多

Java程序员的日常—— FileUtils工具类的使用

package cn.xingoo.learn.commons; import org.apache.commons.io.FileUtils; import org.apache.commons.io.filefilter.DirectoryFileFilter; import org.apache.commons.io.filefilter.FileFileFilter; import org.apache.commons.io.filefilter.FileFilterUtils; imp

Java程序员的日常—— Arrays工具类的使用

这个类在日常的开发中,还是非常常用的.今天就总结一下Arrays工具类的常用方法.最常用的就是asList,sort,toStream,equals,copyOf了.另外可以深入学习下Arrays的排序算法,这个还是非常有用的. 所有的方法都是在下面的类中进行测试的: public class ArraysTest { String[] array = new String[]{"a","c","2","1","b&