访问权限public,protected,private,default

来源:互联网 发布:pass软件使用手册 编辑:程序博客网 时间:2024/06/05 08:58
public的用法(主要对不同包的类的访问权限进行修饰)
1.一个类被声明为public ,那么这个类的文件名必须与类同名

2.被声明为public的类,可以在不同包中被调用

3.public可以用于修饰类、成员变量、成员函数

package org.afangdroid;public class PersonPublic  {public String name;  //被声明为public的权限public int age;  //未被声明为public的权限public void introduce(){System.out.println(name);}}

测试类

<span style="font-size:14px;">package com.afangdroid;//包的导入//如果将类导入,那么在使用另一个包的类时就不用写全名(包含包名)import org.afangdroid.PersonPublic;  //可以用*来代表包下边的所有类class TestPublic{public static void main(String argd []){PersonPublic p = new PersonPublic();// 测试public用   org.afangdroid.PersonPublic p = new org.afangdroid.PersonPublic();  //不在同一个包中,要用全名p.name = "zhangsan";  //被声明为public的权限//p.age = 10;  如果未被声明为public的权限,不能执行成功p.introduce();}}</span>

private的使用

1、用于修饰成员变量和成员函数,特殊情况下可以用于修饰内部类

2、只有在本类中使用被private修饰的成员函数和成员变量

package org.afangdroid;//private的用法//1.给累的成员声明为private,表示只能在当前的类中使用,在这个类的外部通通无法使用public class PersonPrivate  {private String name;  private int age;private void introduce(){System.out.println(name);}}
测试类
package org.afangdroid;class TestPrivate{public static void main(String argd []){PersonPrivate p = new PersonPrivate();//p.name = "zhangsan";  不能被赋值//p.introduce();不能被访问}}

default权限的使用

1、类在同一个包中,那么类可以任意使用
2、default(不写任何修饰符的情况下)可以修饰类、成员变量、成员函数

创建PersonDefault类

package org.afangdroid;//如果类在同一个包中,那么类可以任意使用//default(不写任何修饰符的情况下)可以修饰类、成员变量、成员函数class PersonDefault{String name;int age;void introduce(){System.out.println(name);}}
创建TestDefault类


package org.afangdroid;class TestDefault{public static void main(String argd []){PersonDefault p = new PersonDefault();//在同一个包中,不用加包名p.name = "zhangsan";p.introduce();}}


Protected权限

1、Protected权限拥有和default一样的功能,但是default只能修饰成员变量和成员函数
2、Protected可以跨包使用,允许挎包的继承
3、跨包的时候只有该类的子类才可以访问

创建父类PersonProtected

<span style="font-size:18px;">package com.afangdroid;public class PersonProtected{protected String name;//子类可以使用父类中被声明为protected的成员protected int age;void eat(){System.out.println("eat");}void sleep(){System.out.println("sleep");}}</span>
创建子类StudentProtected

<span style="font-size:18px;">package org.afangdroid;import com.afangdroid.PersonProtected;class StudentProtected extends PersonProtected{void introduce(){System.out.println("我的名字是" + name + ",我的年龄是" + age);}}</span>



0 0
原创粉丝点击