- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《Java修饰符—张永刚
JAVA中的主要修饰符及其实例
1、简介
主要有public、protected、private、package、static、final、super、transient、volatile、abstract、native、synchronized修饰符。
2、关于Java中各种修饰符与访问修饰符的说明
public protected 接口 √ 类 √ 构造器 √ √ √ 属性/变量 √ √ √ 方法 √ √ √ 初始化块 备注 使用public修饰的属性和方法可以被所有的类访问,不管是否同一包下或者继承关系 1.使用protected修饰的属性和方法,可以被同一包下的类和不同包下的子类访问。2.如果用protected修饰一个方法,通常是希望这个方法被子类重写。 1.使用private修饰的属性和方法,只能在该类内部被访问。2.常用来修饰属性,将属性隐藏在类内部 final static abstract 备注 √ √ 三者中只能出现一个 √ 必须指定初始值,系统不会隐式初始化。指定的地方:类属性:静态初始化块,声明时。实例属性:非静态初始化块,构造器,声明时。 public,protected,private只能出现一个,可以与static,final组合修饰 √ √ √ public,protected,private只能出现一个;abstract和final只能有一个,可以与static组合修饰 不同对象调用同一个方法可能得到不同结果 √ 1.final修饰的类不能派生子类。子类不允许覆盖父类的final方法2.final修饰的方法不可被重写,否则会出现编译错误,但是可以重载。(父类中的private final方法,子类中依然可以重定义该方法,不是重写,是两个不同的方法。)3.final修饰的基本类型变量不能被更改,初始化后其值也不能被更改,引用类型只保证所引用的地址不会改变,但引用的对象的内容可以改变。 1.static是一个特殊的关键字,用它修饰的成员属于这个类共有,不属于单个实例,称为类属性(静态属性)和类方法(静态方法)2.静态属性和静态方法可以通过类和实例调用。3.不使用static修饰的属性和方法属于该类的单个实例,不属于该类,称为实例属性(非静态属性)和实例方法(非静态方法)[只能通过实例调用]。4.静态成员(包括静态属性,静态方法,静态初始化块等)不能访问非静态成员。 1。抽象类不能实例化,不能new,只能被继承,其中的方法没有方法体。2。抽象方法只能由子类重写实现。不能与private同时使用3。abstract和final永远不能同时使用。4。static和abstract不能同时修饰同一个方法。
public:访问权限最高,不论是不是同一个包或是否是子类都可以访问。 protected:类中限定为protected的成员,可以被这个类本身、它的子类(包括同一个包中以及不同包中的子类)和同一个包中的所有其他的类访问。private class A
{
protected int weight ;
protected int f( int a,int b?? )
{
// 方法体
}
}
假设B与A在同一个包中,则
Java代码
class B
{
void g()
{
A a=new A();
A.weight=100;//合法
A.f(3,4);??? //合法
}
}
特别说明:什么是在同一个包中?
答:用package打包在一起的class ,叫在同一个包中。(不明白,举个例子)
eg:在JDK的src\java\io中,你会看到许多java类,第一句源代码都是package java.io;
没有使用package打包的,在同一目录下的类也会被视做同一个包。
friendly:在这种情况下中,同protected。区别在第二和第三种情况中。
Java代码
class A
{
int weight ;
int f( int a,int b?? )
{
// 方法体
}
}
?
?
?
假设B与A在同一个包中,则
Java代码
class B
{
void g()
{
A a=new A();
A.weight=100;//合法
A.f(3,4);??? //合法
}
}
文档评论(0)