文章目录
权限访问修饰符
public 公共的 修饰类,属性,方法。可以在任何类中访问
protected 受保护的 修饰属性,方法。 可以在当前类,同包类中访问
default 默认修饰符 修饰类,属性,方法。可以在当前类,同包类中访问
private 私有的 修饰属性,方法。 只能在当前类中访问
1.在同一个包中同一个类中访问属性及方法
在当前类中,不管什么权限的修饰,都可以访问
1.1代码测试
package Modification;
/*
* 测试不同的权限修饰符权限
* */
public class Test {
//属性不支持重载
public int pub;
protected int pro;
int def;
private int pri;
/**
* 公共权限
* */
public void Pubtest() {
System.out.println("Pubtest公共权限方法");
}
/**
* 受保护权限
* */
protected void Protest() {
System.out.println("Protest受保护权限方法");
}
/**
* 默认权限
* */
void Deftest() {
System.out.println("Deftest默认权限方法");
}
/**
* 私有权限
* */
private void Pritest() {
System.out.println("Pritest私有权限方法");
}
// 通过main方法在本类中访问不同权限修饰符修饰的方法及属性
public static void main(String[] args) {
//创建给类对象
Test test = new Test();
//调用本类属性
test.pub = 1;//public
test.pro = 1;//protected
test.def = 1;//默认
test.pri = 1;//private
System.out.println("pub:"+test.pub+",pro:"+test.pro+",def:"+test.def+",pri:"+test.pri);
//在当前类中,不管什么权限的修饰,都可以访问
//调用本类方法
test.Pubtest();//public
test.Deftest();//默认
test.Protest();//protected
test.Pritest();//private
}
}
1.2运行结果
pub:1,pro:1,def:1,pri:1
Pubtest公共权限方法
Deftest默认权限方法
Protest受保护权限方法
Pritest私有权限方法
2.在同一个包中的不同类访问
访问不到 private权限修饰的属性和方法
2.1代码测试
package Modification;
/*
* 在同一个包中的不同类访问
* 注意: 使用同一个包下的类 不需要导包
* 访问不到 private权限修饰的属性和方法
* */
public class Test1 {
public static void main(String[] args) {
//创建对象
Test test = new Test();
//访问属性
test.pub = 1;//public
test.pro = 1;//protected
test.def = 1;//default
System.out.println("pub:"+test.pub+",pro:"+test.pro+",def:"+test.def);
//访问方法
test.Pubtest();//public
test.Protest();//protected
test.Deftest();//default
}
}
2.2运行结果
pub:1,pro:1,def:1
Pubtest公共权限方法
Protest受保护权限方法
Deftest默认权限方法
3.在同一个包中的不同子类中访问
访问不到 private权限修饰的属性和方法
3.1代码测试
package Modification;
/**
* 同一个包下的子类对权限修饰测试
*/
public class Test2 extends Test{
public static void main(String[] args) {
//创建对象
Test test = new Test();
//访问属性
test.pub = 1;//public
test.pro = 1;//protected
test.def = 1;//default
System.out.println("pub:"+test.pub+",pro:"+test.pro+",def:"+test.def);
//访问方法
test.Pubtest();//public
test.Protest();//protected
test.Deftest();//default
}
}
3.2运行结果
pub:1,pro:1,def:1
Pubtest公共权限方法
Protest受保护权限方法
Deftest默认权限方法
4.不同包中的不同子类
访问不到父类中的受保护的,私有的,以及默认权限属性,方法
4.1代码测试
package ModificationTest;
import Modification.Test;
/*
* 子类对父类中的修饰权限访问
* 即在不同包的子类中访问
*
* */
public class Test3 extends Test{
public static void main(String[] args) {
//创建对象
Test test = new Test();
//在类中是访问不到 父类中的 私有 还有默认权限属性,方法
//访问属性
test.pub = 1;
System.out.println("pub:"+test.pub);
//访问方法
test.Pubtest();
}
}
4.2运行结果
pub:1
Pubtest公共权限方法
5.不同包中的不同类
只能访问到public修饰的属性和方法
5.1代码测试
package ModificationTest;
import Modification.Test;
/*
* 在不同类中对不同权限修饰的方法及其属性进行测试
* 注意:不同类中需要导包
*/
public class Test4 {
public static void main(String[] args) {
//创建对象
Test test = new Test();
//访问属性
test.pub = 1;//public
System.out.println("pub:"+test.pub);
//访问方法
test.Pubtest();//public
}
}
5.2运行结果
pub:1
Pubtest公共权限方法