成员的访问权限
首先先声明一下friendly默认访问权限,就是在类的成员变量或者成员方法在没有被public,private,protected修饰时就是默认访问权限。(唉,说到这里就想起来java期末考试时老师让建一个“友好型”的方法,我在声明方法的时候想不出friendly怎么拼写,最后那里空了一格没写,现在回想起来真是被机智的自己感动哭了。)
另外,需要注意一下局部变量不能用修饰符修饰,它们只能在方法内使用。
以下是几个访问权限控制修饰词的访问范围:
本类访问 包内访问 包外子类访问 包外非子类访问
Public Y Y Y Y
Friendly Y Y N N
Protected Y Y Y N
Private Y N N N
Public 修饰的变量和方法是没有限制包内外都可以访问。
Friendly (就这样写好了,它是默认的,但我总得叫它点儿什么)修饰的变量和方法是有包访问权限,本包可以访问,外包不可访。
Protected 修饰的变量和方法也是有包访问权限,它与friendly的
区别是,它所在类的包外子类可以继承和访问protected 修饰的变量和方法。
Private 除了包含该成员的类其他任何类都无法访问该成员。
类的访问权限
类的访问权限仅有两个选择:包访问权限(默认)和public。如果不希望对该类拥有访问权限,可以把所有的构造器都指定为private,从而阻止任何人创建该类的对象,但是在该类的static成员内部可以创建。
验证代码如下所示:
包内测试:
package cn.zjnu.edu.java2425;
class Soup1{
private Soup1(){System.out.println("用static方法创建Soup1对象并返回引用");}
public sta