包:库单元

1.当编写一个Java源码文件时。此文件通常被称为编译单元(有时也被称为转译单元)。
2.每一个编译单元都必须有一个后缀名.java,而在编译单元内则能够有一个public类,该类名称必须和文件的名称同样。
3.每一个编译单元仅仅能有一个public类。否则编译器就不会接受。 4.假设在该编译单元之中还有额外的类的话。那么在包之外的世界是无法看见这些类的。由于它们不是public类。
  • 代码组织
xx.java编译生成xx.class
package语句必须是文件除凝视以外的第一句程序代码

package:

package com.util.tools;

public class Tools {
public static void print(Object object) {
System.out.println("" + object);
}
}

import:

package com.test;

package com.test;

import static com.util.tools.Tools.*; //注意
import java.util.*; public class Test {
public static void main(String[] args) {
print("Hello Java.");
print(Calendar.getInstance().getTime().toString());
}
}
  • 创建独一无二的包名
依照惯例,package名称的第一部分是类的创建者的反顺序的Internet域名

java解释器的执行过程

1.找出环境变量CLASSPATH,CLASSPATH包括一个或多个文件夹,用作查找.class文件的根文件夹
2.从根文件夹開始。解释器获取包的名称并将每一个句点替换成反斜杠。以从CLASSPATH根中产生一个路径名称
3.得到的路径会与CLASSPATH中的各个不同的项相连接,解释器就在这些文件夹中查找与你所要创建的类名称相关的.class文件 注:CLASSPATH=.;D:\JAVA;C\flavors\grape.jar //当中JAR文件的实际名称须要写清楚

Java訪问权限修饰词

public - protected - 包訪问权限(无keyword) - private
置于类中每一个成员的定义之前,不管它是域还是方法
訪问控制权限常被成为:详细实现的隐藏
  • 取得对某成员的訪问权限途径
1.使成员成为public
2.放在同一包中,不加訪问权限修饰词
3.使用继承
4.提供訪问器和变异器(get/set方法)
  • public:接口訪问权限
不论什么类都能够訪问
  • protected:继承訪问权限
protected也提供包訪问权限。同样包内的其它类能够訪问protected权限
  • 包訪问权限
默认权限。无keyword
当前包中的全部其它类对那个成员都有訪问权限,对于包之外的全部类。这个成员却是private
默认包:在同样文件夹下,都未定义package,是具有包訪问权限的
  • private
除了包括该成员的类之外。其它不论什么类都无法訪问这个成员
package com.test;

public class Num1 {
protected static int i = 0;
static int j = 0;
private static int k = 0;
} class Num2 {
int i = Num1.i;
int j = Num1.j;
//int k = Num1.k; //不能訪问private。编译报错
} class Num3 extends Num1 {
int a = i;
int b = j;
//int c = k; //子类也不能訪问private域。编译报错
}

类訪问权限

类能够为public和包訪问权限的。但不能够是private和protected的(内部类除外)。
假设不希望其它不论什么人对该类拥有訪问权限,能够把构造器指定为private,从而阻止创建该类对象,但能够在该类内部创建对象。

【单例模式】
public class Test {
public static void main(String[] args) {
Camera mCamera = Camera.newCamera();
}
} class Camera {
private static Camera mCamera = new Camera();
private Camera() {} public static Camera newCamera() {
return mCamera;
}
}

总结

  • 訪问权限
  类内部 本包 子类 外部包
public
protected ×
包訪问权限 × ×
private × × ×
  • 訪问权限使用
1.类仅仅能用public,protected
2.方法,成员变量。局部变量能够使用以上四种权限

JAVA基础之訪问控制权限(封装)的更多相关文章

  1. C++ 訪问控制权限图解

    基类訪问权限 类继承方式 子类訪问权限           public   public   protected public protected   private   No Access   p ...

  2. TJI读书笔记09-访问控制权限

    TJI读书笔记09-访问控制权限 包,package和import 权限修饰符 接口和实现 类的访问权限控制 首先问一个问题,为什么要有访问控制权限? 安全,这当然是一个很重要的原因. 让类库的使用者 ...

  3. Phalcon 訪问控制列表 ACL(Access Control Lists ACL)

    Phalcon在权限方面通过 Phalcon\Acl 提供了一个轻量级的 ACL(訪问控制列表). Access Control Lists (ACL) 同意系统对用户的訪问权限进行控制,比方同意訪问 ...

  4. ORA-24247: 网络訪问被訪问控制列表 (ACL) 拒绝

     ORA-24247: 网络訪问被訪问控制列表 (ACL) 拒绝 注意:须要在system用户下使用命令 须要先使用 DBMS_NETWORK_ACL_ADMIN.CREATE_ACL 创建訪问控 ...

  5. Java基础语法与流程控制

    Java基础语法与流程控制 跟着狂神学Java的第二天O(∩_∩)O~,养成一个总结的习惯 志同道合的小伙伴可以一起学习狂神的视频 本节地址:https://www.kuangstudy.com/co ...

  6. C++类訪问控制及继承

    一.C++类的訪问控制有三类:public,protected和private. 类訪问控制符 类成员可被哪些对象訪问 public 1.类的成员函数.2.类对象.3.友元.4.子类成员函数 prot ...

  7. 关于Apacheserver的訪问控制

    Apache的訪问控制指对不论什么资源的不论什么方式的訪问控制. 一.基于主机或者IP地址的控制 这样的訪问控制基于訪问者的主机名或者IP地址,通过使用 Deny 和 Allow 指令.实现同意或者禁 ...

  8. 訪问控制 protected, public, private 对照

    OOP 3大特性:数据抽象,继承,动态绑定 3中訪问标号 protected, public, private 对照 用类进行数据抽象:用继承类继承基类的成员,实现继承.通过将基类对应函数声明为vir ...

  9. php訪问控制

    訪问控制通过keywordpublic,protected和private来实现. 被定义为公有的类成员能够在不论什么地方被訪问.被定义为受保护的类成员则能够被其自身以及其子类和父类訪问.被定义为私有 ...

随机推荐

  1. 解决Html.CheckBoxFor中”无法将类型 bool 隐式转换为 bool。存在一个显式转换..."的方法

    在后面加.Value属性 @Html.CheckBoxFor(m => m.IsComment.Value, new { style = "vertical-align: middle ...

  2. 升级Eclipse出错的解决办法“Updating Software” has encountered a problem: An error occurred while uninstalling

    运行 eclipse 把 eclipse exe 修改为 eclipse.exe.back 再运行 updates 升级成功

  3. Python 小程序,对文件操作及其它

    以下是自己写的几个对文件操作的小程序,里面涉及到文件操作,列表(集合,字典)的运用等.比方说,从文件里读取一行数据.分别存放于列表中,再对列表进行操作.如去掉里面的反复项.排序等操作. 常见对文件里行 ...

  4. Android蓝牙——HID开发

    代码地址如下:http://www.demodashi.com/demo/13891.html 原文地址: https://blog.csdn.net/VNanyesheshou/article/de ...

  5. ubuntu12.04(64位)下安装Adobe Flash Player

    2012-06-14 10:10:37   第一步,去adobe官方网站就可以,使用方便,打开网站:http://get.adobe.com/cn/flashplayer/根据自己的版本下载需要的.本 ...

  6. QQ在通信与传输的一些知识

    http://www.nowamagic.net/librarys/veda/detail/2028 一.登录 不管UDP还是TCP,最终登陆成功之后,QQ都会有一个TCP连接来保持在线状态.这个TC ...

  7. 【C语言】二维数组中的查找,杨氏矩阵

    //二维数组中的查找,杨氏矩阵 //在一个二维数组中,每行都依照从左到右的递增的顺序排序.每列都依照从上到下递增的顺序排序. //请完毕一个函数.输入这种一个数组和一个数,推断数组中是否包括这个数. ...

  8. 用bcdedit.exe重建bcd

    使用下面方法之前需要bcdedit.exe和bootsect.exe两个文件,bootsect.exe文件在vista和windows 7的安装光盘的boot目录下,而bcdedit.exe文件可以在 ...

  9. Spatial Transformer Network

    https://blog.csdn.net/yaoqi_isee/article/details/72784881 Abstract: 作者说明了CNN对于输入的数据缺乏空间变换不变形(lack of ...

  10. 浅谈AngularJS的$parse服务

    $parse 作用:将一个AngularJS表达式转换成一个函数 Usage$parse(expression) arguments expression:需要被编译的AngularJS语句 retu ...