java基础学习(五)访问权限控制
来源:互联网 发布:手机电影拍摄软件 编辑:程序博客网 时间:2024/05/17 22:04
java提供的访问权限控制的等级,从最大权限到最小权限依次为:public、protected、包访问权限(没有关键字)、private。
这几个访问权限修饰词在使用时,是置于类中每个成员的定义之前的。无论它是一个方法还是一个域。每个访问权限修饰词仅控制它所修饰的特定定义的访问权。
1、包访问权限(没有关键字)
如果不提供任何访问修饰词,意味着它是“包访问权限”。当前的包中的所有其他类对那个成员都有访问权限,但对于这个包之外的所有类,这个成员却是private。
2、接口访问权限(public)
使用关键字public,意味着public之后紧跟着的成员声明自己对每个人都是可用的。
3、私有访问权限(private)
意味着除了包含该成员的类之外,其他任何类都无法访问这个成员。
任何可以肯定只是该类的一个“助手”方法的方法,都可以把它指定为private,以确保不会在包内的其他地方误用到它。
4、继承访问权限(protected)
将基类的某个特定成员的访问权限赋予派生类而不是所有类,可以使用protected。它也提供包访问权限,相同包内的其他类也可以访问protected元素。
//包路径 package com.thinkinjava.chapter06.dessert;public class Cookie { public Cookie(){ System.out.println("Cookie Constructor"); } //包访问权限 void bite(){ System.out.println("bite"); }}
上面的两个类在不同的包中,Cookie类有一个包访问权限方法bite()。Chocolate类继承Cookie类。同时继承了Cookie类中的public成员和包访问权限成员方法bite()。但是不能在Chocolate类中使用该方法bite()。它位于不同的包中,所以无法使用它,即使在继承的子类中存在该方法。但是将它改为protected访问权限就可以使用了。
访问权限总结:
类访问权限
类的访问权限的修饰词必须出现在关键字class之前。
每一个编译单元(文件)都只能有一个public类。而且public类的名称必须与该编译单元的文件名相匹配,包括大小写。但是在该编译单元中,也可以包括多个不带public的类,具有包访问权限:
图片中的Acctest类的成员的访问权限也都是适用的,在同包中其他类中创建该类的对象,并调用方法:
类既不可以是private的,也不可以是protected的。不可以被其他类创建。
但是在内部类中,可以使用private 和protected访问权限:
对于类的访问权限,只能是public或包访问权限。可以把构造器指定为private,从而阻止任何人创建该类的对象。但是你可以在本类的static方法中创建对象,因为与初始化的顺序有关:
//两种方式创建私有构造器的类的对象public class ClassAccess { //构造器设置为private, private ClassAccess(){ } //可以通过static方法创建对象,且有且只有一个 public static ClassAccess makeObject(){ return new ClassAccess(); } //也可以是static域,且有且只有一个 private static ClassAccess ca=new ClassAccess(); public static ClassAccess access(){ return ca; }}
- java基础学习(五)访问权限控制
- Java基础--Java访问权限控制(访问权限修饰词)
- java基础---访问权限控制
- Java基础:访问权限控制
- Java编程思想学习笔记(五) 第6章 访问权限控制
- java学习---访问权限控制
- Java基础--访问权限控制(包:库单元)
- JAVA基础之访问控制权限(封装)
- java基础篇(五)访问控制符的使用
- [JAVA]学习笔记(三)——访问权限控制
- Java 深入学习(20) —— 访问权限控制
- java学习随笔-访问权限控制
- Java学习笔记(2) :访问权限控制
- java学习-6.访问权限控制
- Java 学习笔记6-访问权限控制
- 重读《Java编程思想》之五:访问权限控制
- 读thinking in java笔记(五):访问权限控制
- java访问权限控制
- 算法训练 和为T
- linux命令行与shell脚本大全_第十三章_处理用户输入
- 同步(Synchronous)/异步(Asynchronous)
- 附录A:Windows编程入门
- php,java实现抽象工厂模式
- java基础学习(五)访问权限控制
- 基于XMPP协议(openfire服务器)的消息推送实现
- 循环中的闭包
- Poweroj 1194(dp背包问题)
- A Boring Game
- Openfire 用户离线、断线 及心跳检测
- Hadoop组件配置
- 通过netcraft查询一个网站的服务信息
- 我的程序员之路(英语的学习)