在学生信息管理系统中,有两个类,分别是学生类和课程类,课程类提供了课程表和课程安排两个方法,学生类可以调用课程类提供的课程表查看课程安排,但不能调用课程安排方法,该如何处理,此时就可以利用访问权限来进行控制。
在Java中,提供了四种访问权限控制:默认访问权限(包访问权限),public,private以及protected。
默认访问权限(default):即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访问。
private: 对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。
protect: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护的”。被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。
public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。下表列出了四种访问权限的控制粒度:
例1:
Main.java:
package com.cxh.test1public class Main {
/**
* @param args */
public static void main(String[] args)
{
// TODO Auto-generated method stub
People people = new People("Tom")
System.out.println(people.getName())
}
}
People.java
package com.cxh.test1class People { //默认访问权限(包访问权限)
private String name = null
public People(String name)
{
this.name = name
}
public String getName() {
return name
}
public void setName(String name)
{
this.name = name
}
}
从代码可以看出,修饰People类采用的是默认访问权限,而由于People类和Main类在同一个包中,因此People类对于Main类是可见的。
private类型的是可以在本类当中随时访问和修改的 但是如果定义的是静态常量就不可修改 当然静态常量我们常常设为public类型的比如
public class Integrhaha{
private in i
} 那么 这个i就是可以在Integerhaha这个类中访问的 比如这个类中有个方法 需要用到这个i 那么就没问题 用就行 ;可是若是在另外一个类中 则就不能访问这个i了
而public中的就没有限制了 想用就用 无论是谁
你可以到网上搜一下public private protected 这三个的区别 不会很难的>
java中有四种1、默认的 是在包内可以访问
2、public —— 共有的, 这我想你知道吧 都可以访问
3、private —— 私有的 , 这只能是自身才可以访问
4、protected —— 保护的,这个只有自身或是其子类可以访问