包的作用

在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程序员的日常 —— 《编程思想》包和访问权限的更多相关文章

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

    工作当中遇到的事情比较杂,因此涉及的知识点也很多.这里暂且记录一下,今天遇到的知识点,纯干货~ 关于文件的解压和压缩 如果你的系统不支持tar -z命令 如果是古老的Unix系统,可能并不认识tar ...

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

    Java虽然利用JVM,让程序员可以放心大胆的使用,可是仍然会出现内存泄露等问题.世上没有绝对的银弹,因此也不能完全把所有的任务都交给JVM,了解Java中的初始化与垃圾回收还是必不可少的知识. 关于 ...

  3. Java程序员的日常——《编程思想》一切都是对象

    今天终于看完了第一章,哈哈,万事开头难....刚开始被编程思想的第一章给蒙住了,讲一堆理论,没什么意思.从第二章开始,真正的开始讲解Java相关的内容,有了一定的开发经验后,再次阅读起来,感觉收获良多 ...

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

    看题目可能是扯皮,其实还是有很多专业知识的.从最开始没有注意到设计原则,到后面的jquery实战技巧,都是今天一天碰到的问题. 每天整理一点点,每天收获一点点. 关于软件设计 在设计系统结构的时候,一 ...

  5. Java程序员的日常—— Properties文件的读写

    在日常的Java程序开发中,Properties文件的读写是很常用的.经常有开发系统通过properties文件来当做配置文件,方便用户对系统参数进行调整. 那么本片就来简单的介绍下,如何使用Prop ...

  6. Java程序员的日常—— 垃圾回收中引用类型的作用

    在Java里面,是不需要太过于关乎垃圾回收,但是这并不意味着开发者可以不了解垃圾回收的机制,况且在java中内存泄露也是家常便饭的事情.因此了解垃圾回收的相关知识就显得很重要了. 引用,在垃圾回收中是 ...

  7. Java程序员的日常 —— 多进程开发

    最近再弄进程管理相关的工作,因此必要的就涉及到各种系统下关于进程的管理. 这里简单的介绍下: 如何在Java中执行命令 在windows下肯定是dos命令了,而在linux则为shell命令.执行的方 ...

  8. 《 Java 编程思想》CH06 访问权限控制

    访问控制(或隐藏具体实现)与"最初的实现并不恰当"有关. 重构即重写代码,以使得它更可读,更容易理解,并因此而更具维护性. 在面向对象设计中需要考虑一个基本问题:"如何把 ...

  9. Java编程思想学习(四) 访问权限

    几种访问权限修饰词 public,protected,private,friendly(Java中并无该修饰词,即包访问权限,不提供任何访问修饰词) 使用时,放置在类中成员(域或方法)的定义之前的,仅 ...

随机推荐

  1. linux获取系统启动时间

    1.前言 时间对操作系统来说非常重要,从内核级到应用层,时间的表达方式及精度各部相同.linux内核里面用一个名为jiffes的常量来计算时间戳.应用层有time.getdaytime等函数.今天需要 ...

  2. 【BootStrap】 基础

    [BootStrap] 基础 一. 自适应(针对不同设备如手机平板笔电,使页面的宽度适应设备宽度) <meta name="viewport" content="w ...

  3. cadence学习之原理图——连线

    重点: (1)两种连接方式:Place Net和Place Net Alias (2)交叉线之间的电气连接Place Junction (3)引脚悬空 Place no connect (4)两器件管 ...

  4. fzu 1402 猪的安家 (中国剩余定理)

     Problem 1402 猪的安家 Accept: 897    Submit: 5642Time Limit: 1000 mSec    Memory Limit : 32768 KB  Prob ...

  5. C# 代码页获取input的值

    <input id="aa" name="iaa" type="text" /> Label1.Text = Request.F ...

  6. redis 内存泄露

    http://www.oschina.net/question/2266476_246221 http://stackoverflow.com/questions/24304212/how-to-de ...

  7. Winform中DockPanel(引用WeifenLuo.WinFormsUI.Docking.dll组件)的使用

    WeiFenLuo.WinFormsUI.Docking.dll是开源项目DockPanel Suite的一个类库,可实现像Visual Studio的窗口停靠.拖拽等功能.WeifenLuo.Win ...

  8. [Shell]Bash变量:环境变量的配置文件和登录信息

    ----------------------------------------------------------------------------------------- 只有把环境变量放入配 ...

  9. Oracle 建表,递增序列,触发器,分析函数row_number() ,partition by 子句。

    create table SC ( Id INTEGER, Name nvarchar2(20) , KC_Name nvarchar2(20), KC_score INTEGER , constra ...

  10. Browser设置搜索引擎

    Browser设置搜索引擎,在com.android.browser.preferences.GeneralPreferencesFragment中加载R.xml.general_preference ...