由理解Java访问权限而产生的感触

作者: lanceJin | 来源:发表于2017-04-18 18:13 被阅读0次

1.先说说感触


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

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

修饰符及范围 类内部 包内部 子类中 不限制
private 允许 不允许 不允许 不允许
default 允许 允许 不允许 不允许
protected 允许 允许 允许 不允许
public 允许 允许 允许 允许

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


有一个人姓张名平,家住北京市,手机号码是13366668888。他有一儿一女,儿子跟他一起住在北京,女儿独自住在上海。根据一般情况,我们可以确定以下四点:1.儿子和女儿都姓张;2.只有父亲名字为平;3.儿子和父亲所在地为北京;4.认识张平的人都知道他的手机号码。而与子女一样的和被人知晓的就是可访问的。

4.代码描述现象


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


程序目录结构.png

由于名字是个人所有,所以用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.运行的结果

显示不可访问.png

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


最后可以访问.png

相关文章

  • 由理解Java访问权限而产生的感触

    1.先说说感触 Java最初的兴起,很大一部分是因为它是面向对象的语言。面向对象最大的特点便是“万事万物皆对象”,...

  • 2-Java访问权限

    Java访问权限 1.类的访问权限 2.抽象方法的访问权限 3.构造方法访问权限

  • java中的修饰符访问权限

    如果没有写就是默认访问权限。 java的类有2种访问权限:public、默认 而方法和变量有4种:public、默...

  • Java访问控制符

    Java访问控制符的访问权限

  • 黑马程序员面试宝典(Java)Beta6.0免费下载

    场景 JavaSE基础 面向对象特征以及理解 访问权限修饰符区别 理解clone对象 JavaSE语法 java有...

  • java权限控制

    浅析Java中的访问权限控制 今天我们来一起了解一下Java语言中的访问权限控制。在讨论访问权限控制之前,先来讨论...

  • scala:field

    访问权限private(当前类)package权限(java中的默认权限),指定特定包访问private[包名]p...

  • 二十、访问权限修饰符

    在Java中提供了四种访问权限,使用不同的访问权限时,被修饰的内容会有不同的访问权限,以下表来说明不同权限的访问能...

  • 修饰符小谈

    在Java中提供了四种访问权限,使用不同的访问权限时,被修饰的内容会有不同的访问权限,以下表来说明不同权限的访问能...

  • Java基础学习六 关键字

    java语言中的访问控制权限修饰符 访问控制权限修饰来控制元素的访问范围。 访问控制权限修饰符包括:public ...

网友评论

    本文标题:由理解Java访问权限而产生的感触

    本文链接:https://www.haomeiwen.com/subject/ajifzttx.html