java中权限修饰符protected的详细介绍

《java核心技术 卷I》中讲到protected是为了限制父类中的某个方法只允许子类访问,或者更少见地,可能希望允许子类的方法访问父类的某个字段。其实书中没有讲清楚,应该是protected是为了限制不同包情况下父类的某个方法只能被子类访问,或者更少见地,可能希望允许子类的方法访问父类的某个字段。见案例如下:

 一、protected修饰字段的时候

(一)同包下访问受保护字段salary

package test;

public class Employee {
	private String name;
	protected double salary;
	public int age;
	
	
}
package test;

public class Manager {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		var em=new Employee();
		em.age=10;
		em.salary=1000;
	}

}

 (二)不同包且非子类访问受保护字段salary

 

(三)不同包的子类访问父类受保护字段salary

package test1;

import test.Employee;

public class Administrator extends Employee {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		var ad=new Administrator();
		ad.salary=1000;
	}

}

 不同包情况下,子类就能够访问了。

 由以上实例得出第一个结论:

1.保护字段允许由同包中的类访问;

2.不同包中受保护字段只允许子类访问;

 二、protected修饰方法的时候

(一)同一包中访问受保护方法

package test;

public class Employee {
	private String name;
	protected double salary;
	public int age;
	
	protected void raiseSalary(double byPercent) {
		double raise=salary*byPercent/100;
		salary+=raise;
	}
}

 

package test;

public class Manager {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		var em=new Employee();
		em.age=10;
		em.salary=1000;
		em.raiseSalary(1000);
	}

}

 这里的Manager并不是Employee的子类,同包情况下,一样的能够访问到Employee类的受保护方法。我们再来看看不同包的情况。

(二)不同包且非子类访问受保护方法

 不同包的非子类一样访问不了受保护方法。

(三)不同包的子类访问父类受保护方法

package test1;

import test.Employee;

public class Administrator extends Employee {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		var ad=new Administrator();
		ad.raiseSalary(1000);
	}

}

 能够调用,由此得出以下结论:

1.受保护方法允许同包中的类访问。

2.不同包中受保护方法只允许子类访问。

总结:protected访问修饰符只能修饰字段和方法,他具有默认访问修饰符的访问权限之外还可以允许不同包的子类访问。受保护字段尽量少用,因为这会破坏类的封装性。受保护方法相比更有意义。

萝卜和菠萝
关注 关注
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
javaprotected的权限
04-17
NULL 博文链接:https://837062099.iteye.com/blog/1609340
理解java的类的各种权限修饰符
02-28
本文将详细探讨Java的五种权限修饰符:`public`、`protected`、`default`(也称为包访问权限)、`private`以及`static`修饰类的情况,并通过实例来展示这些修饰符的具体应用。 #### 1. Public - **概述**: - `...
关于JAVA作用域
skyfulxx的专栏
10-30 117
1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用 2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。 3、protectedprotected对于子女、朋友来说,就是public的,可以自由使用,没有任...
访问权限修饰符(public、protected、private)、封装(私有化类属性、私有化类的某些方法)
最新发布
Watermelon_Mr的博客
07-18 1179
如:单例模式:单个实例,在系统,想让某个类只能创建一个对象(如计算机电脑上的任务管理器在Windows系统下只能创建一个)(1)修饰对象:类(包括正常类和内部类)、成员变量、方法(包括构造方法和成员方法)(1)修饰对象:类(包括正常类和内部类)、成员变量、方法(包括构造方法和成员方法),必须通过类提供的方法来实现对隐藏信息的操作(赋值)和访问(取值)(2)权限范围:被修饰对象只能在本类、同包类、不同包子类被访问。(1)隐藏了类的某些信息,保护了类属性的数据值。
java修饰符public ,private ,protected 及默认的区别
java开发指南博客 【转载】
08-17 316
Java访问修饰符public、private、protecte、default的意义讲解: public(接口访问权限): Java语言访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。 private(你无法访问): Java语言对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以及方法只能...
Javaprotected
weixin_63490470的博客
10-24 378
这些成员可以在MyBaseClass、同一个包的其他类以及不同包的MyBaseClass的子类访问。这有助于封装和代码的模块化。在这个例子,MyDerivedClass位于一个不同的包(com.example),但它继承自MyBaseClass,因此它可以访问MyBaseClass的protected成员。不同包的子类:在不同包的子类可以访问其父类的protected成员。同一个包的其他类:在同一个包的任何类都可以访问protected成员,无论这个类是否继承自该成员所属的类。
Java:谈谈protected访问权限
weixin_33910759的博客
03-05 149
本文分析一下protected访问权限。 author: ZJ 2007-3-5 Blog: [url]http://zhangjunhd.blog.51cto.com/[/url] 来谈谈protected访问权限问题。看下面示例1: Test.java class MyObject {} public class Test { ...
Java四种权限修饰符知识点详解
08-19
protected权限是Java四种权限修饰符的一种,它可以修饰数据成员、构造方法和方法成员,但不能修饰类。被protected修饰的成员可以在定义它们的类和同包的类被调用。如果有不同包的类想调用它们,那么这个类必须...
举例详解Java的访问权限修饰符
09-03
Java的访问权限修饰符是编程语言控制代码访问的重要机制,主要用于确保程序的封装性和安全性。Java提供了五种访问权限级别,分别是public、friendly(或称为default)、private和protected。下面将详细解释这些...
Java的访问修饰符详细解析
09-05
Java的访问修饰符是编程控制类、接口、方法和字段访问权限的关键元素。它们用于确定哪些代码可以访问特定的程序元素。以下是Java访问修饰符的详细解析: 1. **类的访问修饰符** - **public**:公共类修饰符,...
java访问权限修饰符public.doc
11-21
Java 语言,访问权限修饰符是指用来限定类、成员变量和方法的可访问范围的关键字。访问权限修饰符分为四种:public、protected、friendly 和 private。每种修饰符都有其特定的访问权限和使用场景。 一、public...
javaprotected 继承 父类引用指向子类对象
D-Wade 成长之路
08-13 1712
首先说明:父类和之类在不同包,那么父类的default和private方法都不能被子类继承。 javaprotected 1. protected 访问控制符能被用于方法和成员变量。     2. 声明为protected的方法和成员变量能被同一个包里的所有类所访问,就像默认修饰符package一样。     3. 能被该类的子类所访问,子类可以和父类不在一个包
Java访问权限之 protected详解
热门推荐
秦延金
07-15 8万+
对于类的成员(包括成员变量和成员方法)而言,其能否被其他类所访问,取决于该成员的修饰词;而对于一个类而言,其能否被其他类所访问,也取决于该类的修饰词。在Java,类成员访问权限修饰词有四类:private,无(包访问权限),protected 和 public,而其只有包访问权限和public才能修饰一个类(内部类除外)。由于很多Java书籍对protected可见性的介绍都比较笼统,本文重点说明了protected关键字的可见性内涵。
JAVAprotected权限
狂奔的蜗牛
11-06 1046
1.派生类可以访问父类的protected数据,这是毫无疑问的。 2.今天做Think in java的习题发现,同一个包内的一个类调用另一个类的protected数据是可以的。代码如下: package mnmlist; class Mnmlist{ public static void pt() { Hello hi=new Hello(100); System.out.
JavaProtected
shengzhu1的博客
06-02 592
https://zhidao.baidu.com/question/1864554280080109987.html做一下测试
JavaProtected修饰符
qwerrfxgj的博客
11-14 1088
        Protected字段是为了继承而设计的.首先,一般的字段由于封装性,一般设置成private,但如果有新类继承当前字段所属的类,就要修改当前字段的访问控制权限.          如果子类和父类在同一个package,只需要将private去掉,权限变为包访问权限即可;但是如果子类和父类不在同一个包内,为了能够让继承实现,必须把private改成public.对于类库和客户端...
Javaprotected修饰符
NSX-Truth
01-11 303
Javaprotected修饰符 在 《Thinking in Javaprotected 的名称是「继承访问权限」,这也就是我们记忆protectedprotected 必须要有继承关系才能够访问。 所以你以为你懂了, 可是你真的理解了这句话吗? 先思考几个问题: 同一个包, 子类对象能访问父类的 protected 方法吗? 不同包下, 在子类创建该子类对象能访问...
JAVA修饰符protected
海之凌云的博客
03-21 573
1. 类成员的访问控制修饰符protected表示该类所属包内的类或该类的派生类可以访问protected成员。 1.2 针对protected成员,有一个容易误解的地方,请看下面的代码 {CSDN:CODE:1618853} 1.3 通过以上代码,可以得出结论:在生成派生类时,派生类可以继承基类的protected成员,这个继承的protected成员在派生类内部是可以访问的,但是在派
Java编程:内部类与权限修饰符讲解
Java编程语言,内部类和权限修饰符是两个重要的概念,它们分别涉及类的组织结构和访问控制。今天我们将深入探讨这两个主题。 首先,让我们了解内部类。内部类是定义在一个外部类内的类,它提供了一种封装和抽象...
写文章

热门文章

  • 详细解读JDK与eclipse的安装,配置环境变量 4462
  • java中权限修饰符protected的详细介绍 1748
  • Java中用LocalDate输入当前月日历 1292
  • 用输出100000以内的质数(或素数)体会算法对程序的优化 227
  • 深入理解Lambda表达式 223

分类专栏

  • 笔记 2篇

最新评论

  • java核心技术 卷1 比较器和动作监听器使用Lambda表达式案例

    CSDN-Ada助手: 恭喜您写了这么一篇精彩的博客,介绍了Lambda表达式在比较器和动作监听器中的应用案例。我认为您的文章内容详实且易懂,对于Java开发者来说一定是很有价值的。希望您能继续保持创作热情,分享更多有趣实用的技术文章。同时,我也建议您可以尝试扩展一些相关的主题,让读者能够更深入地了解这方面的知识。再次感谢您的分享! CSDN 会根据你创作的博客的质量,给予优秀的博主博客红包奖励。请关注 https://bbs.csdn.net/forums/csdnnews?typeId=116148&utm_source=csdn_ai_ada_blog_reply7 看奖励名单。

大家在看

  • 帝国CMS正文内容设置关键词与图片链接冲突的问题
  • 犀牛数据爬虫逆向分析
  • 《动手学深度学习》笔记1.6——多层感知机→代码实现 1779
  • 深度学习:神经网络--手写数字识别 915
  • 学习STM32的定时器和中断 595

最新文章

  • 用输出100000以内的质数(或素数)体会算法对程序的优化
  • 深入理解方法引用和构造器引用、数组构造器引用
  • 深入理解Lambda表达式
2023年10篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家小型玻璃钢雕塑摆件哪里买四川商场美陈怎么样山西动物玻璃钢雕塑定制奉化商场开业美陈湛江玻璃钢艺术雕塑雕塑玻璃钢的师傅玻璃钢雕塑工业河南卡通玻璃钢雕塑厂玻璃钢雕塑喷漆中山潮州玻璃钢卡通雕塑内蒙古玻璃钢人物雕塑制作漯河专业玻璃钢卡通雕塑制作宜昌户外玻璃钢雕塑公司佛山校园雕塑玻璃钢景观小品玻璃钢玫瑰花雕塑鹰潭玻璃钢雕塑多少钱芜湖新型玻璃钢雕塑拱北商场美陈浙江商场美陈厂家直销中顺雕塑玻璃钢河南通用玻璃钢花盆阜阳商场开业美陈拉萨园林玻璃钢雕塑定做圣诞商场美陈效果图沧州玻璃钢卡通雕塑价格潮州玻璃钢动物雕塑推荐货源河北大型主题商场美陈厂家直销玻璃钢花盆和泥镁花盆哪个重周口大象玻璃钢雕塑商场美陈蝴蝶设计方案香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化