Java中private , public , protected 几个关键字
来源:互联网 发布:解压缩软件64位 编辑:程序博客网 时间:2024/06/13 01:05
1、关键字 private
class Sundae {private Sundae() {}static Sundae makeASundae() {return new Sundae();}}public class IceCream {public static void main(String[] args) {//!Sundae sundae = new Sundae()// 构造器是“私有”的,不能这么访问Sundae sundae = Sundae.makeASundae();System.out.println(sundae);}}
这个例子向我们证明了使用private 的方便:有时可能想控制对象的创建方式,并防止有人直接访问一个特定的构建器
(或者所有构建器)。在上面的例子中,我们不可通过它的构建器创建一个Sundae 对象;相反,
必须调用makeASundae()方法来实现(注释③)。
③:此时还会产生另一个影响:由于默认构建器是唯一获得定义的,而且它的属性是private,所以可防止
对这个类的继承。
③:此时还会产生另一个影响:由于默认构建器是唯一获得定义的,而且它的属性是private,所以可防止
对这个类的继承。
2、关键字 protected
public class Cookie {public Cookie() {System.out.println("Cookie construct");}void foo() {System.out.println("foo");}}
public class ChocolateChip extends Cookie{public ChocolateChip() {System.out.println("ChocolateChip constructor");}public static void main(String[] args) {ChocolateChip x = new ChocolateChip();//! x.foo();// 不能访问 foo}}
对于继承,值得注意的一件有趣的事情是倘若方法foo()存在于类Cookie 中,那么它也会存在于从Cookie继承的所有类中。当类Cookie和类ChocolateChip不在同一个包下时,不能访问foo()方法(同一个包下可以)。当然,亦可将其变成public。但这样一来,由于所有人都能自由访问它,所以可能并非我们所希望的局面。若象下面这样修改类Cookie:
public class Cookie {public Cookie() {System.out.println("Cookie construct");}protected void foo() {System.out.println("foo");}}
将方法foo()的访问控制权限设置为 protected 时候,Cookie的子类就能在外部包访问foo()方法了。
x.foo(); 就不会报错了。
这个时候方法 foo() 方法并不是公开的(public)。
0 0
- Java中private , public , protected 几个关键字
- java中public,private,protected等关键字的使用场景。
- java中public,private,protected,(default)关键字
- public,private,protected关键字
- C++中public protected private关键字
- Java关键字系列(public,protected,private)
- java final static public private protected关键字
- Java常用关键字(public,private,protected)
- Java关键字之private、default、protected、public
- JAVA关键字--private protected public default
- Java public private protected
- public,private,protected /java
- public、private、protected-----java
- java中private, public,protected的区别
- Java中private、public、protected的区别
- java中private, public,protected的区别
- java中private, public,protected的区别
- Java 中public protected private的区别
- java的动态代理和静态代理
- 设计模式之装饰模式
- Ubuntu12.04安装RabbitMQ服务器
- Codeforces 645C Enduring Exodus【二分】
- 第3周项目3-输出星号图(2)
- Java中private , public , protected 几个关键字
- socket api
- IntelliJ 创建main函数快捷
- java第三节数组
- 换装demo随手记
- flex布局练习
- 浅谈C++内存管理
- 通过CAGradientLayer制作渐变色效果【原创】
- Poj3299 Humidex java 分析