博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中protect属性用法总结
阅读量:5888 次
发布时间:2019-06-19

本文共 2011 字,大约阅读时间需要 6 分钟。

测试代码:

  • pojo类:

package com.lky.h1;public class Base {    private Integer id;    protected String name;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    @Override    public String toString() {        return "Base [id=" + id + ", name=" + name + "]";    }        }
  • test1类

package com.lky.h1;import org.junit.Test;/*** @ClassName: test1* @Description: 同一个包内测试protect属性* @author Administrator* @date 2015年10月13日* */public class test1 extends Base{    /**    * @Title: testBase    * @Description: 父类本身的访问     */    @Test    public void testBase(){        Base base=new Base();        base.setId(10);//        base.id=9; 同一个包内private属性不能直接访问        base.name="lky";//同一个包内protect属性可以直接访问        System.out.println(base);    }        /**    * @Title: testExends    * @Description:  子类的访问      */    @Test    public  void testExends(){        test1 a=new test1();        a.name="lky";//protect属性在子类中可见,可以直接访问        a.setId(10);//private属性在子类中不可见,不能直接访问        System.out.println(a);    }}
  • test2类

package com.lky.h2;import org.junit.Test;import com.lky.h1.Base;public class test2 extends Base {    @Test    public void testBase() {        Base base = new Base();        // base.name="lky";不能直接访问        // base.id=10; 不能直接访问        base.setName("lky");        base.setId(10);        System.out.println(base);    }    @Test    public void testExends() {        test2 a = new test2();        a.name = "lgh"; //可以直接访问//        a.id = 10;    //不能访问        a.setId(10);        System.out.println(a);    }}

总结:假设有类A和类B,且A类中有一个值属性为protect

  1. 若A和B在同一个包下:在B类中是可以通过A直接访问A中的protect属性,实验如test1的testBase
  2. 若A和B在同一个包下,并且B继承于A:在B类中也是可以直接访问A中的protect属性,实验如test1的testExtends
  3. 若A和B不在同一个包下:在B类中是不可以通过A来访问A中的protect属性,即该属性在B类中不可见,实验如test2中testBase
  4. 若A和B不在同一个包下,并其B继承于A:在B类中是可以访问到A中的protect属性,实验如test2的testExtends

转载于:https://www.cnblogs.com/dmir/p/4876038.html

你可能感兴趣的文章
Postman教程
查看>>
python模块--os模块
查看>>
HSSFRow获取单元格方法与区别
查看>>
《图解HTTP》读书笔记
查看>>
iOS开发-单例模式
查看>>
词汇小助手V1.2——可以显示英语单词的国际音标
查看>>
洛谷 1365 WJMZBMR打osu! / Easy
查看>>
删除UINavigationItem上的BarButtonItem
查看>>
数据分析相关模块
查看>>
Python数据结构1-----基本数据结构和collections系列
查看>>
SQL Denali-FileTable
查看>>
C# 图像处理:复制屏幕到内存中,拷屏操作
查看>>
PHP微信支付流程
查看>>
UDP收不到报文,调试了一晚上,终于发现问题所在
查看>>
Tornado简介
查看>>
Heron and His Triangle 2017 沈阳区域赛
查看>>
CF989B A Tide of Riverscape 思维 第七题
查看>>
unix高级环境编程-读书笔记(1)
查看>>
MongoDB学习教程(1)
查看>>
基于adt-bundle-windows-x86-20140321的android环境搭建
查看>>