• day14_ 权限修饰符 内部类 匿名内部类


    今日内容

    • 权限修饰符

    • 内部类

    • 匿名内部类

    权限修饰符

      public(公共的) protected(受保护的) (default)这个是默认的,不写 pervate(私有的)
    同一个类
    同一个包 ×
    不同包的子类 × ×
    不同包的非子类 × × ×

    如果一个类被public修饰,那么该类对应的源文件.java的文件名需要和类名保持一致

    不同权限修饰符有不同的访问能力

    其中private是最小的权限,public是最大的权限

    成员变量:建议使用private,隐藏细节

    构造方法:使用public,方便创建对象

    成员方法:建议使用public,方便调用

    内部类

    内部类就是将一个类A定义在另一个类B里面,里面的类A就是内部类,类B就是外部类

      成员内部类就是定义在类中方法外的类,也就是定义在成员位置的内部类(比如心脏和身体的关系,此时就需要使用内部类)

        成员内部类格式:

    修饰符  class  外部类名称{
        修饰符  class  内部类名称{
          //....  
    }
        //....
    }

        访问特点

    内部类可以直接访问外部类的成员,包括私有成员
    外部类要访问内部类的成员,必须建立内部类的对象

        使用内部类的格式:

    外部类类名.内部类  对象名  = new  外部类名().new  内部类名();
    
    内部类是个独立的类,编译后仍然会产生一个.class文件,该类文件名称:外部类类名$内部类名.class

      

    匿名内部类(最常用的内部类)

    内部类的简写,本质是带着具体实现父类或者父接口的匿名的子类对象

      匿名内部类的前提

    匿名内部类必须继承一个父类或者实现一个接口,伴随着重写父类或者父接口当中的抽象方法。

      匿名内部类的格式

    new 父类名或者是父接口名 {
        //方法的重写
        @Override
        public void method(){
        //重写的方法体内容...
        }
    };
    在方法的形式参数是借口或者抽象类时,一般可以将匿名内部类作为实参进行参数穿递。
    public interfaceAnimal{
    //
            public abstract void eat();
    }
    //定义一个启动类
    public class Demo{
    //定义一个成员方法
      public static void showEat(Animal animal){
    animal.eat();
    }  
    public static void main(Stirng[] args){
      //采用匿名内部类的方式来写
      //多态写法
      //等号左边:接口
      //等号右边:本质是Animal接口的子类对象
      Animal animal = new Animal() {
      @Override
    public void eat(){
    System.out.println("猫吃鱼");
    }  
    } ;
    showEat(animal);//猫吃鱼
    
    //简化版
    showEat(new Animal{
    @Override
    public void eat(){
    System.out.println("猫吃鱼");
    }
    });
    }
    }

        

  • 相关阅读:
    启用EMF的自动生成UUID功能
    关于web开发使用utf8编码所需的配置
    Cognos8安装使用问题记录
    ILOG JViews Diagrammer使用记录
    四种方法修改Palm Simulator使用的ROM
    无光驱笔记本n410c装windows xp总结
    JSF开发问题和解决
    Equinox OSGi服务器应用程序的配置步骤
    从google获得大尺寸地图图片文件
    Amazon EC2配置步骤和一些问题
  • 原文地址:https://www.cnblogs.com/rxqq/p/14052118.html
Copyright © 2020-2023  润新知