Enviar pesquisa
Carregar
6, access control
•
0 gostou
•
238 visualizações
ted-xu
Seguir
About java access control
Leia menos
Leia mais
Vista de apresentação de diapositivos
Denunciar
Compartilhar
Vista de apresentação de diapositivos
Denunciar
Compartilhar
1 de 14
Recomendados
Bypat博客出品-利用cent os快速构建自己的发行版-进阶版v1.1
Bypat博客出品-利用cent os快速构建自己的发行版-进阶版v1.1
redhat9
1, shell intro
1, shell intro
ted-xu
淺談Debian套件打包
淺談Debian套件打包
Wen Liao
Apache+php+mysql在Linux下的安装与配置
Apache+php+mysql在Linux下的安装与配置
wensheng wei
O čem (také) je obecná teorie relativity
O čem (také) je obecná teorie relativity
Lukáš Richterek
Gebeurtenis Presentatie Apollo 13
Gebeurtenis Presentatie Apollo 13
RobSalaets
Building Manufacturing Processes Drop By Drop
Building Manufacturing Processes Drop By Drop
Xennia Technology
2016 02 28 基隆槓子寮砲台_社寮砲台_和平島
2016 02 28 基隆槓子寮砲台_社寮砲台_和平島
Wardson Jess
Recomendados
Bypat博客出品-利用cent os快速构建自己的发行版-进阶版v1.1
Bypat博客出品-利用cent os快速构建自己的发行版-进阶版v1.1
redhat9
1, shell intro
1, shell intro
ted-xu
淺談Debian套件打包
淺談Debian套件打包
Wen Liao
Apache+php+mysql在Linux下的安装与配置
Apache+php+mysql在Linux下的安装与配置
wensheng wei
O čem (také) je obecná teorie relativity
O čem (také) je obecná teorie relativity
Lukáš Richterek
Gebeurtenis Presentatie Apollo 13
Gebeurtenis Presentatie Apollo 13
RobSalaets
Building Manufacturing Processes Drop By Drop
Building Manufacturing Processes Drop By Drop
Xennia Technology
2016 02 28 基隆槓子寮砲台_社寮砲台_和平島
2016 02 28 基隆槓子寮砲台_社寮砲台_和平島
Wardson Jess
La reproducción de la imagen y su impacto
La reproducción de la imagen y su impacto
kassandra primavera
Välittämistä ei voi ulkoistaa
Välittämistä ei voi ulkoistaa
Anna-Liisa Lämsä
PS5 Terapiat
PS5 Terapiat
Anne Rongas
Identity Workshop By David
Identity Workshop By David
david
Mikä ONKI on?
Mikä ONKI on?
Kim Viljanen
Een heldere merkessentie in 5 stappen
Een heldere merkessentie in 5 stappen
Inside Out Branding
New Media, Big Data, IoT aneb jak to je?!
New Media, Big Data, IoT aneb jak to je?!
Josef Šlerka
English Language Teaching Models
English Language Teaching Models
PJ Medina
Бог и Я: Терпимость – God and Me: Tolerance
Бог и Я: Терпимость – God and Me: Tolerance
Freekidstories
Carta ANEF sobre seguridad a intendenta Región de Aysen
Carta ANEF sobre seguridad a intendenta Región de Aysen
vidasindical
Class Inheritance
Class Inheritance
finian lau
10, inner classes
10, inner classes
ted-xu
Java物件導向
Java物件導向
艾鍗科技
7, reusing classes
7, reusing classes
ted-xu
Java23种设计模式(总结)
Java23种设计模式(总结)
xuanlong282
课题一:PHP5.3、PHP5.4的特性介绍与深度挖掘
课题一:PHP5.3、PHP5.4的特性介绍与深度挖掘
Liu Allen
SCJP ch13
SCJP ch13
r82093403
[圣思园][Java SE]Java se lesson 3
[圣思园][Java SE]Java se lesson 3
ArBing Xie
《Java程序设计》期末考试试题 (六)
《Java程序设计》期末考试试题 (六)
jane2006
2, object oriented programming
2, object oriented programming
ted-xu
JavaScript 闭包分享(一):传递参数
JavaScript 闭包分享(一):传递参数
Janlay Wu
Groovy:Candy for Java Developers
Groovy:Candy for Java Developers
foxgem
Mais conteúdo relacionado
Destaque
La reproducción de la imagen y su impacto
La reproducción de la imagen y su impacto
kassandra primavera
Välittämistä ei voi ulkoistaa
Välittämistä ei voi ulkoistaa
Anna-Liisa Lämsä
PS5 Terapiat
PS5 Terapiat
Anne Rongas
Identity Workshop By David
Identity Workshop By David
david
Mikä ONKI on?
Mikä ONKI on?
Kim Viljanen
Een heldere merkessentie in 5 stappen
Een heldere merkessentie in 5 stappen
Inside Out Branding
New Media, Big Data, IoT aneb jak to je?!
New Media, Big Data, IoT aneb jak to je?!
Josef Šlerka
English Language Teaching Models
English Language Teaching Models
PJ Medina
Бог и Я: Терпимость – God and Me: Tolerance
Бог и Я: Терпимость – God and Me: Tolerance
Freekidstories
Carta ANEF sobre seguridad a intendenta Región de Aysen
Carta ANEF sobre seguridad a intendenta Región de Aysen
vidasindical
Destaque
(10)
La reproducción de la imagen y su impacto
La reproducción de la imagen y su impacto
Välittämistä ei voi ulkoistaa
Välittämistä ei voi ulkoistaa
PS5 Terapiat
PS5 Terapiat
Identity Workshop By David
Identity Workshop By David
Mikä ONKI on?
Mikä ONKI on?
Een heldere merkessentie in 5 stappen
Een heldere merkessentie in 5 stappen
New Media, Big Data, IoT aneb jak to je?!
New Media, Big Data, IoT aneb jak to je?!
English Language Teaching Models
English Language Teaching Models
Бог и Я: Терпимость – God and Me: Tolerance
Бог и Я: Терпимость – God and Me: Tolerance
Carta ANEF sobre seguridad a intendenta Región de Aysen
Carta ANEF sobre seguridad a intendenta Región de Aysen
Semelhante a 6, access control
Class Inheritance
Class Inheritance
finian lau
10, inner classes
10, inner classes
ted-xu
Java物件導向
Java物件導向
艾鍗科技
7, reusing classes
7, reusing classes
ted-xu
Java23种设计模式(总结)
Java23种设计模式(总结)
xuanlong282
课题一:PHP5.3、PHP5.4的特性介绍与深度挖掘
课题一:PHP5.3、PHP5.4的特性介绍与深度挖掘
Liu Allen
SCJP ch13
SCJP ch13
r82093403
[圣思园][Java SE]Java se lesson 3
[圣思园][Java SE]Java se lesson 3
ArBing Xie
《Java程序设计》期末考试试题 (六)
《Java程序设计》期末考试试题 (六)
jane2006
2, object oriented programming
2, object oriented programming
ted-xu
JavaScript 闭包分享(一):传递参数
JavaScript 闭包分享(一):传递参数
Janlay Wu
Groovy:Candy for Java Developers
Groovy:Candy for Java Developers
foxgem
运维自动化
运维自动化
OpenCity Community
6kbbs vulnerability report
6kbbs vulnerability report
insight-labs
六步教你学会简单Rmi
六步教你学会简单Rmi
yiditushe
应聘Java笔试时可能出现问题及其答案
应聘Java笔试时可能出现问题及其答案
yiditushe
5, initialization & cleanup
5, initialization & cleanup
ted-xu
Moodle 项目帮助手册:程序编写准则
Moodle 项目帮助手册:程序编写准则
YUCHENG HU
Spring入门纲要
Spring入门纲要
yiditushe
Semelhante a 6, access control
(19)
Class Inheritance
Class Inheritance
10, inner classes
10, inner classes
Java物件導向
Java物件導向
7, reusing classes
7, reusing classes
Java23种设计模式(总结)
Java23种设计模式(总结)
课题一:PHP5.3、PHP5.4的特性介绍与深度挖掘
课题一:PHP5.3、PHP5.4的特性介绍与深度挖掘
SCJP ch13
SCJP ch13
[圣思园][Java SE]Java se lesson 3
[圣思园][Java SE]Java se lesson 3
《Java程序设计》期末考试试题 (六)
《Java程序设计》期末考试试题 (六)
2, object oriented programming
2, object oriented programming
JavaScript 闭包分享(一):传递参数
JavaScript 闭包分享(一):传递参数
Groovy:Candy for Java Developers
Groovy:Candy for Java Developers
运维自动化
运维自动化
6kbbs vulnerability report
6kbbs vulnerability report
六步教你学会简单Rmi
六步教你学会简单Rmi
应聘Java笔试时可能出现问题及其答案
应聘Java笔试时可能出现问题及其答案
5, initialization & cleanup
5, initialization & cleanup
Moodle 项目帮助手册:程序编写准则
Moodle 项目帮助手册:程序编写准则
Spring入门纲要
Spring入门纲要
Mais de ted-xu
11, OCP - awr & alert system
11, OCP - awr & alert system
ted-xu
10, OCP - flashback
10, OCP - flashback
ted-xu
9, OCP - restore and recovery with rman
9, OCP - restore and recovery with rman
ted-xu
8, OCP - backup with rman
8, OCP - backup with rman
ted-xu
7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recovery
ted-xu
6, OCP - oracle security
6, OCP - oracle security
ted-xu
5, OCP - oracle storage
5, OCP - oracle storage
ted-xu
4, OCP - oracle networking
4, OCP - oracle networking
ted-xu
3, OCP - instance management
3, OCP - instance management
ted-xu
2, OCP - installing and creating a database
2, OCP - installing and creating a database
ted-xu
1, OCP - architecture intro
1, OCP - architecture intro
ted-xu
12, OCP - performance tuning
12, OCP - performance tuning
ted-xu
7, business event system
7, business event system
ted-xu
6, workflow miscellaneous
6, workflow miscellaneous
ted-xu
5, workflow function activity
5, workflow function activity
ted-xu
4, workflow tables & api
4, workflow tables & api
ted-xu
3, workflow in ebs
3, workflow in ebs
ted-xu
2, a simple workflow
2, a simple workflow
ted-xu
1, workflow intro
1, workflow intro
ted-xu
8, bes tables & api
8, bes tables & api
ted-xu
Mais de ted-xu
(20)
11, OCP - awr & alert system
11, OCP - awr & alert system
10, OCP - flashback
10, OCP - flashback
9, OCP - restore and recovery with rman
9, OCP - restore and recovery with rman
8, OCP - backup with rman
8, OCP - backup with rman
7, OCP - configure database for backup and recovery
7, OCP - configure database for backup and recovery
6, OCP - oracle security
6, OCP - oracle security
5, OCP - oracle storage
5, OCP - oracle storage
4, OCP - oracle networking
4, OCP - oracle networking
3, OCP - instance management
3, OCP - instance management
2, OCP - installing and creating a database
2, OCP - installing and creating a database
1, OCP - architecture intro
1, OCP - architecture intro
12, OCP - performance tuning
12, OCP - performance tuning
7, business event system
7, business event system
6, workflow miscellaneous
6, workflow miscellaneous
5, workflow function activity
5, workflow function activity
4, workflow tables & api
4, workflow tables & api
3, workflow in ebs
3, workflow in ebs
2, a simple workflow
2, a simple workflow
1, workflow intro
1, workflow intro
8, bes tables & api
8, bes tables & api
6, access control
1.
Access Control
2.
Agenda •
概述 • 包 - 命名空间 • 包命名规范 • 包与目录结构 • 类成员访问权限 • public • 包访问权限 • private • protected • 接口和实现 • 类与程序单元
3.
概述 • Java提供了如下访问权限: 公共(public),
受保 护(protected), 包访问(无修饰符), 私有 (private); 访问权限的存在使得可以将程序接 口(保持不变或极少改变)公开给客户使用, 而对具体实现(容易变化)则进行隐藏; • Java的包机制不仅提供了名字空间(避免类 名称污染), 而且为模块化编程提供了便利. 可以将同一个模块下面的代码放在同一个 包, 这样便于管理
4.
包 - 命名空间
import关键字 • 包是一个命名空间, 由多个组织在一起的类组成; 比如常用的由 JDK提供的java.util包, 下面有ArrayList/HashMap等数据结构, 会经 常被使用到; • 包作为一个命名空间表示的含义是在不同的包下面可以有相同 的类名, 比如java.util.List和java.awt.List类名都是List但是在不同 的包下面; • 包下面的类可以通过全名进行访问, 比如: java.util.ArrayList list = new java.util.ArrayList(); 也可以先使用import关键字引入, 然后使用: import java.util.ArrayList; ...... ArrayList list = new ArrayList(); // 这里方式更为简便 另外如果需要引入包下面的多个类, 那么逐个import是 比较麻烦的, 可以使用.*的方式引入包下面的所有类, 比如: import java.util.*;
5.
包命名规范
类名冲突 • 通常建议使用组织的域名对包进行命名, 以确 保包名的唯一性, 比如com.yourdomain.yourorg; • 由于不同的包下面可以定义名称相同的类, 在 引入这些名字相同的类时就会造成类名冲突, 比如: import java.util.List; import java.awt.List; ...... List list = new ArrayList(); // 编译错误 这种情况下需要显式指定包名对类进行访问: java.util.List list = new ArrayList();
6.
包与目录结构 • 当为Java类指定一个包时, 必须将类文件
(.java)放在与包名一致的目录结构中, 比如: 包名com.yourcompany.ui, 那么该包下面的所 有类文件都应该在目录com/yourcompany/ui 下面;
7.
类成员访问权限 • 公开 修饰符: public,
所有类都可以访问该成员; public 通常修饰类接口和static常量, 极少被用于修饰非static 属性; • 包访问 修饰符: 无, 当前包下面的类(包括自己)可以访 问该成员; • 受保护 修饰符: protected, 当前类及子类可访问; • 私有 修饰符: private, 仅当前类可访问.
8.
public • 示例: // Cookie类定义如下: package
access.dessert; public class Cookie { public Cookie() {...} // 公开访问 void bite() {...} // 包访问权限 } // Dinner类的定义, 使用Cookie package access; import access.dessert.*; public class Dinner { public static void main(String[] args) { Cookie x = new Cookie(); // 正确, 因为Cookie类以及构造方法都是public // x.bite(); // 编译错误, bite方法是包访问权限, // Dinner 与 Cookie不在同一个包内 } }
9.
包访问 • 示例: // Pie类定义如下: package
access; class Pie { void f() { System.out.println(“Pie.f()”); } // 包访问权限 } // Cake类的定义, 使用Pie package access; class Cake { public static void main(String[] args) { Pie x = new Pie(); x.f(); // 正确访问, 在同一个包内 } }
10.
private • 示例: // Sundae类定义如下: class
Sundae { private Sundae() {} // 私有构造器 static Sundae makeASundae() { return new Sundae(); } } // IceCream类的定义, 使用Sundae public class IceCream { public static void main(String[] args) { //! Sundae x = new Sundae(); // 不能调用Sundae构造函数, 因为是私有访问权限 Sundae x = Sundae.makeASundae(); } }
11.
protected • 示例: // Cookie类 package
demo public class Cookie { public Cookie() { System.out.println("Cookie constructor"); } protected void bite() { // 受保护权限 System.out.println("bite"); } } // ChocolateChip类继承自Cookie, // 可以访问Cookie类的受保护成员 public class ChocolateChip extends Cookie { public ChocolateChip() { System.out.println("ChocolateChip constructor"); } public void chomp() { bite(); // ok } public static void main(String[] args) { ChocolateChip x = new ChocolateChip(); x.chomp(); } } 示例: demo/Demo1.java
12.
接口和实现 • 在面向对象编程中, 访问控制,
隐藏实现以及封装都是同一个概 念; 本质上都是指仅提供公共接口, 隐藏具体的实现; 比如: public class OrganizedByAccess { public void pub1() { /* ... */ } public void pub2() { /* ... */ } public void pub3() { /* ... */ } private void priv1() { /* ... */ } private void priv2() { /* ... */ } private void priv3() { /* ... */ } private int i; } 在这个类中, pub*方法都是该类提供出来的接口, 而priv*方法则是 具体的内部实现.
13.
类与程序单元 • 一个java文件被称为一个程序单元, 可以包
含多个java类; 一个程序单元内只能有一个 public类, 并且该类的名称应该与java文件的 名称相同, 比如SomeClass.java对应的是: public class SomeClass... • 类访问权限只能是public或者包访问权限, 不 能是private/protected.
14.
END