Java的访问权限拾零

一、Java中的访问权限修饰词:[color=red]public[/color],[color=red]protected[/color]和[color=red]private[/color]。

二、假如没有给定任何的访问权限,说明具有包访问权限,有时也成为“[color=red]friendly[/color]”。这意味着,当前的包中的其他类对那个成员有访问权限,但对于在这个包之外的所有类,这个成员却是private的。包访问权限的最大意义在于:[color=red]允许你将包内所有相关的类组织起来,使他们之间可以轻松的互相访问,相互作用[/color]。

三、获得对某一成员访问权限的唯一途径:
1. 用public关键字修饰该成员,则无论是谁,在任何地方都能访问到该成员。
2. 不加任何的访问权限,并将其他类放置于同一个包内,这样,基于包访问权限,则该包内的其他类也可访问该成员。
3. 通过继承,子类可以访问父类的protected的成员(但是private成员依然不可访问。)
4. 提供访问器(accessor)和变异器(mutator)方法,即“get/set”方法。

四、类的修饰符只能是包访问权限或者public,不能是private或者protected的(内部类除外,内部类允许使用private或者protected来进行修饰。)如果不希望任何人创建该类的对象,你可以把所有的构造函数指定为private的,但是,有一个例外,就是该类的static成员内部可以创建,所以,如果你不希望别人通过构造函数创建实例的时候,可以像下面这样:

class Soup {
/*
* 将构造声明为private的,则别人在使用Soup类的时候,
* 就不能通过new来创建该类的实例了。
*/
private Soup() {}

/*
* 方法一:通过Soup.makeSoup()调用静态方法的方式来获得Soup的实例。
*/
public static Soup makeSoup() {
return new Soup();
}

/*
* 方法二:创建一个静态对象,并返回实例。
*/
private static Soup ps1 = new Soup();
public static Soup access() {
return ps1;
}
}

同时【方法二】选择用了一种被称为“singleton”的设计模式,使你始终只能创建它的单一的一个对象。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值