博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
由理解Java访问权限而产生的感触
阅读量:7225 次
发布时间:2019-06-29

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

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那获取。我们找到对应的变量,进行删除,那么运行的结果便是子女和其他人能从张平那访问的。

 

转载于:https://www.cnblogs.com/tianchengmmmm/p/8377349.html

你可能感兴趣的文章
iOS 11正式版终于来了!强力助攻小程序
查看>>
开放平台API接口调用频率控制系统设计浅谈
查看>>
Lucene4.3进阶开发之潜龙勿用( 七)
查看>>
DTD和schema小总结
查看>>
去掉导航栏的黑线
查看>>
怎样让html加载完毕后加载js代码
查看>>
piwik 案例介绍
查看>>
敏感字过滤
查看>>
为什么我们要从 NodeJS 迁移到 Ruby on Rails
查看>>
Android 文件式数据库Realm
查看>>
Linux 面试知识点笔记
查看>>
论flex布局和box布局的华为meta8手机自带浏览器的兼容
查看>>
dubbo与springcloud初识
查看>>
iis web.config 配置示例
查看>>
归并排序
查看>>
java 的转义字符
查看>>
SharedPreferences的使用注意事项
查看>>
sofa-pbrpc高级用法
查看>>
Oracle 函数返回表实例2种写法实例
查看>>
mysql数据库主从复制
查看>>