zoukankan      html  css  js  c++  java
  • java类,接口浅谈

    一般类,抽象类,接口的使用场景:
    类;共同的特征和行为的抽取和封装
    接口:标准,规范(功能的扩展)
            需要对某个类进行功能的扩展,就让某个类实现这个接口,抽取出来称为接口
     
    内部类:
     
    1.成员内部类:
    该类与外部类的属性和方法平级
    Outer outer =new Outer();
    outer.show();
    //创建内部类的实例
    Outer.Inner inner=outer.new Inner();
    //实例.new方法
    inner.showInner();
    创建成员内部类的对象:
    外部类类名.内部类类名 对象名= 外部类对象.new 内部类对象; 
     外部类.this:表示访问与内部类同名的外部类属性
     
    2.局部内部类;
    作用域:所在的方法体
    局部变量不能用可见性修饰符修饰(类体里面可以)
    局部变量是常量,用final修饰
     
    3.静态内部类:
    该类与外部类的静态属性和静态方法平级
    访问权限修饰符 static class 内部类名{}
     
    4:匿名内部类:
    应用场景:Button按钮的事件监听
    定义在外部类中,没有名字且只会被使用一次的内部类
    访问权限修饰符 class 外部类{
    属性和方法
    写法一: 属性//接口
    访问权限修饰符 接口类型 属性名 =new 接口类型(){
    //类体
    };
     
    方法二: 方法体中
    访问权限修饰符 返回值类型 方法名(形参){
     //局部变量可以使用匿名内部类
    new 接口类型(){
     //类体
    }.接口中的方法();
    //或者是:
    接口类型 局部变量=new 接口类型(){
    //类体
    };
    }
    }
     
    写法一:new了一个实现类的实例,创建接口的引用对象
    Inter a=new Inter(){public void show(){}};//接口不能单独new,所以new一个实现类的实例
     
    写法二:
    外部类:public void display(){new Intera(){public void show(){} };
    intera2.show(); //调用类体里面的方法
    外部类的实例调用这个方法
    }
     
    写法三:intera2.show();.show() //实例点方法
     
    匿名内部类除了接口外,还能用抽象类,普通类;来写
    匿名内部类继承了抽象类,该匿名类体中可以不重写
    普通类:new的是普通类匿名的子类的实例
    private Common c=new Common(){public void show(){} };
    //匿名内部咧可以书写特有的方法,但是永远不会调用
     
     
    匿名内部类的特点:
    1.只使用一次,定义在外部类的属性部分或者方法体部分
    2.可实现java语言的多继承(类都是单继承;内部类实现多继承,外部类可以继承一个类,内部类也可以继承,变象用内部类实现"多继承";)
    3.从语法角度,类可以书写任意层数的类,没有限制(一般不超过两层)
    4.内部可以写接口
     
    除了匿名内部类之外,其余的内部类,怎么判断源文件生成的多少字节码文件: 根据class的个数

     

     
  • 相关阅读:
    hdu 1325 判断有向图是否为树
    poj 1182
    Ubuntu 系统 文件操作命令
    vim 快捷键大全
    Git 上传本地命令
    git错误:fatal: Not a git repository (or any of the parent directories): .git
    Git 如何回到过去,然后 再 回到将来
    Git 提供篇
    Linux 的cp命令
    Linux :: vi E212: Can't open file for writing
  • 原文地址:https://www.cnblogs.com/yiweiaimeng/p/4962729.html
Copyright © 2011-2022 走看看