Java访问控制符的原理是什么
创始人
2024-11-18 05:42:59
0次

Java包中的相关概念

包的概念

  Java中的包类似于操作系统中的文件夹,将具有类似功能的类或者相同的类放在相同的包里面,便于组织与管理

包的作用

  1.一是开发过程中避免类名重复问题;

  2.二是对代码整理归类,将功能相近的类放到一个包中管理;

  3.三是限定访问权限(default)就是包访问权限。

简述调用某个包中的类的三种方式

  1>使用一个类的全名:即包名+类名

    注意:在包中,所有类对真正名字将是包名+类名的组合,所以在运行的时候要将包层给写上,不能直接写类名。

  2>使用import语句导入一个包中的所有的类。

  3>使用import语句导入一个包中的特定的类。

Java中访问控制符的具体用法

为什么需要控制对成员的访问?

  第一个原因是防止程序员接触他们不该接触的东西---通常是内部数据类型的设计思想。

  进行访问控制的第二个原因是允许库设计人员修改内部结构,不用担心它会对客户程序员造成什么影响。Java的访问控制级别分类

  1.类访问控制级别

  •  public
  •  default(默认的,什么都不用写,包内访问控制符)
     

  2.对象访问控制级别

  •  public:它修饰的成员没有限制,任何包中的任何类都能访问。
  •  protect:它修饰的只能被同一个包中的类访问,或者不同包中的子类访问。
  •  default:只能被同一个包中的类访问,包括同一个包中的子类。
  •  private:只能被同一个类中的方法访问。

访问权限

访问权限同一个类内部同一个包内部不同包中的子类不同包的非子类
public∨∨∨∨
protected∨∨∨×
default∨∨××
private∨×××

  总结:

    1>在一个类的内部,访问控制符是透明的,失效的

    2>在同一个包的内部,只有private有成员不能进行访问

    3>在不同包存在继承关系的两个类之间,只有public成员和protected成员可以进行访问

    4>在不同包之间,只有共有成员可以进行访问

代码演示

  (1)在一个类的内部,所有的成员彼此之间都可以进行相互访问,访问控制符是透明的,失效的,共有的可以调用私有的,私有的可以调用共有的。

package com.vg.demo01;

public class TestAccessModifier {
	public void test1(){
		System.out.println("我是public");
	}
	protected void test2(){
		System.out.println("我是protected");
	}
	void test3(){
		System.out.println("我是default");
	}
	private void test4(){
		System.out.println("我是private");
	}
	public static void main(String[] args) {
		TestAccessModifier t=new TestAccessModifier();
		t.test1();
		t.test2();
		t.test3();
		t.test4();
}
}

我是public
我是protected
我是default
我是private

  (2)在同包不同类之间,只有其私有成员不可以通过类对象名的方式进行访问,共有成员和保护型的成员都可以通过这种方式进行访问. 简言之:在同一个包的内部,只有其私有成员不能够进行访问

Java访问控制符的原理是什么

package com.vg.demo01;
//private是不能在同包的子类中起作用的。
public class TestAccessModifierSon extends TestAccessModifier{
	
	public static void main(String[] args ) {
		TestAccessModifierSon s = new TestAccessModifierSon();
		s.test1();
		s.test2();
		s.test3();
	}
	
}

我是public
我是protected
我是default

Java访问控制符的原理是什么

package com.vg.demo01;
//非子类,在同一个包中,没有继承父类,即不是它的子类,private同样不能发挥作用
public class TestAccessModifierNotSon {
	
	public static void main(String[] args ) {
		TestAccessModifierSon s = new TestAccessModifierSon();
		s.test1();
		s.test2();
		s.test3();
	}
}

我是public
我是protected
我是default

  (3)在不同包存在继承关系的两个类之间,只有共有类的共有成员和共有类的保护型成员才可以被另外一个包中的子类进行访问,但是在一个子类的外部,只有共有类的共有成员才可以被直接的访问.

Java访问控制符的原理是什么

package com.vg.demo02;

import com.vg.demo01.*;
//在不同的包中,类的子类只有public、protected这俩个可以产生效果
public class TestAccessModifierOtherSon extends TestAccessModifier{

	public static void main(String[] args) {
		TestAccessModifierOtherSon th = 
				new TestAccessModifierOtherSon();
		th.test1();
		th.test2();

	}

}

我是public
我是protected

  (4)在不同包无任何关系的两个类之间,只有共有类的共有成员才可以被另外一个包中的类进行访问.

Java访问控制符的原理是什么

package com.vg.demo02;

import com.vg.demo01.TestAccessModifier;

public class TestAccessModifierOtherNotSon {
	public static void main(String[] args) {
		TestAccessModifier t = new TestAccessModifier();
		t.test1();
	}
}

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...