JobPlus知识库 IT 软件开发 文章
由理解Java访问权限而产生的感触

1.先说说感触

Java最初的兴起,很大一部分是因为它是面向对象的语言。面向对象最大的特点便是“万事万物皆对象”,而在现实世界中,每个事物的确可以认为是一个独立的对象。将现实的问题转化为对象间的问题,再用代码描述解决问题的方法,编译成机器可以读懂的语言,最后由计算机执行得出结果,这个流程便是程序员每天的工作。
  那么可以看出,程序员每天最繁重的体力劳动便是用文字表达自己的想法。这是什么行业,不就是作家吗,只不过受众是其他的作家而已。既然作家讲究文笔、修辞和意境等,程序员又该注意些什么呢?我个人觉得,能做到结构清晰,内容明确,文字简练即可(这就是代码架构出现的原因)。

2.修饰访问权限的关键字

3.访问权限在现实中的场景

4.代码描述现象

首先新建一个项目,通过包名区分不同的城市,用Father代表张平,用Boy代表儿子,用Girl代表女儿,Main则是程序启动的入口和代表其他人。

由于名字是个人所有,所以用private修饰;而不同的城市对应不同的包名,所以用默认即可;只要是张平的孩子都姓张,所以用protected修饰;电话号码就是让别人记的,所以用public修饰。

package org.lance.beijing; public class Father{        private String firstName = "平";    /*default*/ String address = "北京市";    protected String lastName = "张";    public String phone = "13366668888";        @Override    public String toString() {        return "Father [firstName=" + firstName + ", address=" + address + ", lastName=" + lastName + ", phone=" + phone                + "]";    } }package org.lance.beijing; public class Boy extends Father {        @Override    public String toString() {        return "Boy [firstName=" + firstName + ", address=" + address + ", lastName=" + lastName + ", phone=" + phone                + "]";    } }package org.lance.shanghai; import org.lance.beijing.Father; public class Girl extends Father {        @Override    public String toString() {        return "Girl [firstName=" + firstName + ", address=" + address + ", lastName=" + lastName + ", phone=" + phone                + "]";    } }

在程序的入口处实例化这三个对象,展示每个人的基本资料。

import org.lance.beijing.Boy; import org.lance.beijing.Father; import org.lance.shanghai.Girl; public class Main {    public static void main(String[] args) {        System.out.println(new Father().toString());        System.out.println(new Boy().toString());        System.out.println(new Girl().toString());        System.out.println(new Father().phone);    } }5.运行的结果

Boy和Girl都会报Father的成员属性不可访问的错误,说明此处不能从Father那获取。我们找到对应的变量,进行删除,那么运行的结果便是子女和其他人能从张平那访问的。


如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

¥ 打赏支持
23人赞 举报
分享到
用户评价(0)

暂无评价,你也可以发布评价哦:)

扫码APP

扫描使用APP

扫码使用

扫描使用小程序