Java访问控制符

Java提供了4种访问控制符,主要用于控制其他类是否可以访问某一类中的属性或方法,从而实现数据封装。四种访问控制符的权限大小(由大到小)为public(公共)、protected(保护)、default(默认)、 private(私有)。

private(私有):当类中属性或方法被private修饰时,表示此成员或方法只能被自己类中的方法使用,而不能被外部类或对象直接使用。例如:

public class PersonDemo {
	public static void main(String[] args) {
		Person person = new Person();
		//person.name = "张三";//不能访问Person类中的私有属性
		//person.fun();//不能访问Person类中的私有方法
	}
	
}

class Person {
	private String name = "";
	
	private void fun() {
		System.out.println(this.name);//可以访问自己类中的私有属性
	}
	
	public void fun1() {
		fun();//可以访问自己类中的私有方法
	}
}
default(默认):具有包访问权限,如果类中属性或方法不使用public,protected,privete修饰符修饰时,则说明其具有包访问权限,具有包访问权限的属性或方法既可以被自己类中的方法使用也可以被同一包下的其他类使用,但不能被其他包中的类使用。例如:
package com.person.test;

public class PersonDemo {
	int age;
	
	public void fun() {
		System.out.println(this.age);//可以访问自己类中的默认属性
	}
}


package com.person.test;

public class ManagerDemo {
	public static void main(String[] args) {
		PersonDemo personDemo = new PersonDemo();
		personDemo.age = 18;//可以访问同一包下类中的默认属性
	}
}


package com.student.test;

import com.person.test.PersonDemo;

public class StudentDemo {
	public static void main(String[] args) {
		PersonDemo personDemo = new PersonDemo();
		//personDemo.age = 18;//不能访问不同包下类中的默认属性
	}
}
protected(保护):具有子类访问权限。如果类中属性或方法被protected修饰符修饰,则此类中属性或方法可以被同一包下的类使用,也可以被不同包下的子类使用,但不能被不同包下的其他类使用。例如:

package com.person.test;

public class PersonDemo {
	protected int age;
}


package com.student.test;

import com.person.test.PersonDemo;

public class SubDemo extends PersonDemo{
	public static void main(String[] args) {
		SubDemo subDemo = new SubDemo();
		subDemo.age = 18;//保护属性被不同包下的子类使用
	}
}


package com.student.test;

import com.person.test.PersonDemo;

public class StudentDemo {
	public static void main(String[] args) {
		PersonDemo personDemo = new PersonDemo();
		//personDemo.age = 18;//保护属性不能被其他包中的类使用
	}
}
public(公共):具有公共访问权限。如果类中的属性或方法被public修饰,则此类中的属性或方法可以被任何类调用。

总结:
四种访问控制权限如下("+"号表示有访问权限, "-"号表示没有访问权限):




评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值