java访问控制权限

本文深入解析Java中的访问权限修饰符,包括private、protected、public及默认修饰符的作用范围,通过具体示例展示不同修饰符下类、属性和方法的访问权限。

java访问权限的修饰符:private 、protected、public和默认,作用是限定其他类对该类、属性和方法的使用权限。只有public和默认可以修饰类

private修饰的变量和方法,只能在本类中访问,但是可以对private属性提供get,set方法,子类可以访问父类的get,set方法

public修饰的类,属性,方法,在任何地方都可以访问

protected修饰的属性,方法,可以在本类,同一个包的类(包括子类),不同包的子类中访问.

不加修饰符即默认修饰的类,方法,属性只能在本类,和同一个包中的类(包括子类)访问,不能在不同包的子类中访问

默认不加修饰符的类和属性,方法只能在本类或者同一个包的类中访问

类ProtectedTest
package com.chen.day5;

public class ProtectedTest {
	protected int age;
	String name;
	public String color;
	protected void  test1() {
		System.out.println("test1");
	}
	void test2() {
		System.out.println("test2");
	}
	public void test3() {
		System.out.println("test3");
	}
}

不同包下的类Test1和Test2
package com.chen.day6;

import com.chen.day5.ProtectedTest;

public class Test1 extends ProtectedTest{
	//不同包的子类下的访问权限
	public void test4(){
		test1();//protected修饰的方法,在不同包的子类中可以访问
		//test2();默认修饰的方法,在不同包的子类中不能访问
		test3();//public修饰,可以访问
		System.out.println(age);//protected修饰的属性,在不同包的子类中可以访问
		//但是在不同包的非子类中不能访问
		//System.out.println(super.name);//默认修饰的属性,在不同包的子类中不能访问
		System.out.println(color);//public修饰的属性,可以访问
	}
}
class Test2{
	 //不同包的类中的访问权限
	public static void main(String[] args) {
		ProtectedTest p=new ProtectedTest();
	  //p.age=10;
	  //p.name="Li";
		p.color="blue";//只有public修饰的属性和方法才能在任意地方访问
		//p.test1();
		//p.test2();
		p.test3();
		
	}
}

out:
test3

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值