zoukankan      html  css  js  c++  java
  • 包的访问控制权限

    private:可以定义方法,属性,定义的方法和属性不能被类的外部所看到。

    default:可以在本包的任意地方访问。

    public:都可以访问,不受任何限制。

    protected:保护,不同包的非子类不可以访问。

    protected权限,在不同包的它的子类能够被访问

    package org.lxh.demo08.g ;
    public class HelloDemo{
        protected String name = "LXH" ;        // 只能在本包及不同包的子类中访问
    };

    在其他包的子类访问这个属性。

    package org.lxh.demo08.h ;
    import org.lxh.demo08.g.HelloDemo ;
    class SubHelloDemo extends HelloDemo{    //在其他包中的子类!
        public void print(){
            System.out.println("访问受保护属性:" + super.name) ;
        }
    };
    public class ProtectedDemo01{
        public static void main(String args[]){
            SubHelloDemo sub = new SubHelloDemo() ;
            sub.print() ;
        }
    };

    运行结果:

    访问受保护属性:LXH

    如果现在没有使用子类,而是直接在不同类中访问,则会出现无法访问的错误。

    package org.lxh.demo08.h ;
    import org.lxh.demo08.g.HelloDemo ;
    public class ProtectedDemo02{
        public static void main(String args[]){
            HelloDemo sub = new HelloDemo() ;
            System.out.println(sub.name) ;    // 错误的,不同包的类无法访问
        }
    };

    回顾

      当产生一个类之后,为了保证类中的内容不被外部直接看到,则使用private关键字。但是,如果两个有关系的类要进行属性相互访问的话就比较麻烦。

    之前只能使用getter(),和setter()方法取得和设置,所以为了减少私有属性的的访问的麻烦,使用了内部类,但是内部类会破坏程序的结构。

      为了让一个类的内容可以方便的使用,使用了继承的概念,但是在继承中,private属性也是无法被子类看到,所以此时,为了方便子类的操作,

    可以将属性使用protected进行封装,这样一来,外部也无法看到(不同包)

      之后有了继承之后,既然有了父子的关系,所以可以使用向上或者向下的转型,以完成多态性,但是,在开发中,类与类直接直接继承并不多见,而往往

    继承抽象类,或实现接口,当若干个操作间需要解耦合的时候,就可以使用接口完成

      既然有内部类了,则如果一个接口或者抽象类的子类只使用一次,则可以将其定义为匿名内部类

      开发中没有包的类是绝对不存在的。

      封装-》继承-》多态。

    JAVA命名规范

      类:所有单词首字母大写。

      方法:第一个首字母小写,之后每个单词首字母大写:如:getInfo();

      属性:第一个首字母小写,之后每个单词首字母大写:如:studentName;

      包:所有单词的字母小写,如:org.lxh.demo08.h

      常量:所有字母大写,如:FLAG.

    总结:

      protected访问权限;

      命名规范。

  • 相关阅读:
    省市区三级联动
    VUE项目PC端实现自适应rem
    (课堂笔记)第十三章GLSB涉及负载均衡算法
    LTM理解及配置笔记记录
    实验演示---GSLB部分(DC1)
    F5实验模拟拓扑
    (课堂笔记)第十三章:DNS 全局站点
    AbstractList类_Iterator内部类
    Oracle 时间格式化异常:无效数字
    Maven库镜像
  • 原文地址:https://www.cnblogs.com/alsf/p/5634826.html
Copyright © 2011-2022 走看看