JAVA基础之訪问控制权限(封装)
Posted cxchanpin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA基础之訪问控制权限(封装)相关的知识,希望对你有一定的参考价值。
包:库单元
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基础之訪问控制权限(封装)的主要内容,如果未能解决你的问题,请参考以下文章