第十三章讲了,要将类的信息,不管是成员变量还是方法,能隐藏的尽量隐藏,引出来对于访问修饰符的几个知识点,加黄色底影的地方是以前没有清晰的搞定的地方。
首先声明:java中,friendly这个修饰符并没有显式的声明,在成员变量和方法前什么修饰符也不用,默认的就是friendly,其实就是default类型。
为了条理清晰,分三种不同情况来总结。
一 访问权限修饰符修饰成员变量和方法
public:表明该成员变量和方法是共有的,能在任何情况下被访问。
protected:必须在同一包中才能被访问。(说的比较简单,看个例子就明白了) 同时,不是同一个包的子类也可以访问。
eg:
假设B与A在同一个包中,则
特别说明:什么是在同一个包中?
答:用package打包在一起的class ,叫在同一个包中。(不明白,举个例子)
eg:在JDK的src\java\io中,你会看到许多java类,第一句源代码都是package java.io;
没有使用package打包的,在同一目录下的类也会被视做同一个包。
friendly:在这种情况下中,同protected。区别在第二和第三种情况中。
eg:
假设B与A在同一个包中,则
private: 只能在本类中访问。
eg:
PS:实际上,把重要的数据修饰为private,然后写一个public的函数访问它,正好体现了OOP的封装特性,是OOP安全性的体现。
二 访问权限修饰符修饰类
1,不能用protected和private修饰类。
2,用friendly修饰的类叫友好类,在另外一个类中使用友好类创建对象时,要保证它们在同一包中。
三 访问权限修饰符与继承
这里的访问修饰符指的是修饰成员变量和方法。可以分为两种情况:
1,子类与父类在同一包中
此时只有声明为private的变量与方法不能被继承(访问)。
eg:
2,子类与父类不在同一包中
此时private与friendly均不能被继承(访问), protected与public可以,protected的一个说法就是希望不是同一个包的类想调用它就必须通过继承来调用,否则不能。
eg:
Father.java
Son.java
所以,访问权限修饰符权限从高到低排列是public ,protected ,friendly, private。
四 根据zimingguo同学的提示,内部类是可以用private来修饰的,同时关于这点也有很多有趣的地方,引用下子 孑大大的探讨文章来参考,http://zhangjunhd.blog.51cto.com/113473/65624。
分享到:
相关推荐
Java 访问修饰符 public protected private
经过长时间的学习和经验的积累,我总结出JAVA访问修饰符的全部特性和使用范围,外加使用权限,另外我还总结了一下关于接口,抽象类的一些特性
Java和C# 中访问修饰符 及其对比说明
计算机二级摸底测验J继承和接口和java访问权限修饰符总结ava题目
Java修饰符总结[汇编].pdf
详细介绍java访问修饰符与费访问修饰符
父子类可以是不同包 在不同包下面只有public 与 protected 可以访问,而且protected必须是在继承关系下才能够访问
主要对Java的主要修饰符进行分析,相关特点与用法。
java访问权限修饰符public.doc
也是通过查阅网上资料,初略的整理了一下,(包含了final、static、abstract和访问修饰符public、protect、default、private)写成规范文档希望对有需要的提供些帮助
总结java修饰符,简单明了,作用很大哦,欢迎大家交流
JAVA修饰符总结.pdf
继承和接口和java访问权限修饰符总结.doc
继承和接口和java访问权限修饰符总结.pdf
JAVA 访问修饰符 及 protected 几点被人忽略的致命要害,不看后悔哦,亲
比较详细的介绍Java修饰符即及别,这是我把网络上以及自己比较的东西加以整合总计的,希望对Java触及爱好者有所帮助!
针对Java中的修饰符总结
知道c#中类和接口等默认修饰符吗?知道其成员的吗?知道各修饰符的作用吗?看看绝对帮到你。。
关于Java中各种修饰符与访问修饰符的说明.doc
实验目的 理解掌握Java类修饰符、访问控制符等;理解熟悉String类的equals方法和= =运算符;进一步熟悉面向对象基本概念;熟悉Java中对象声明、创建、访问、参数传值等基本语法;