• java笔记匿名内部类和静态内部类的理解和使用


    匿名内部类

    --如果朋友您想转载本文章请注明转载地址"http://www.cnblogs.com/XHJT/p/3889467.html  "谢谢--

    1.由于局部内部类并不可见,因此不如使用匿名内部类替代。
    只有当需要定义或重写类的构造方法,或者需要多个类的对象时,才建议使用局部内部类。
    2.由于构造方法必须与类名相同,而匿名内部类没有类名,因此不能为其定义构造方法。
    如果程序代码非常简单,则使用匿名内部类会使结构比价清晰。反之则不推荐使用匿名内部类。
    3.匿名内部类常用于Swing中的组件的监控:
    如:
    ActionListenner listener = new ActionListenner(){
    public void actionPerformed(ActionEvent e){}
    };

    静态内部类

    静态内部类是使用static修饰的内部类,在静态内部类中,可以使用外部类定义的静态域,
    但是不能使用非静态域,这是静态内部类与非静态内部类最大的区别
    如:
    public void fuction(){
    public static class ObjectB{}
    }
    注意:ObjectB类不能声明成private的,否则不能使用其中定义的方法。

    静态内部类的使用:
    在内部类不需要访问外部类的对象时,可以将其设置成静态内部类。
    可以像静态域和方法那样使用类名来引用静态内部类。

    例如:
    利用静态内部类来求一个数组的最大值和最小值:
    package com.xhj.OOP.innerclass;

    /**
    * 静态内部类的使用
    *
    * @author XIEHEJUN
    *
    */
    public class InnerStaticClass {

    public static class ResultInner {
    private double max;
    private double min;

    public ResultInner(double max, double min) {
    this.max = max;
    this.min = min;
    System.out.println("max = "+max+"\tmin = "+min);
    }

    public double getMax() {
    return max;
    }

    public double getMin() {
    return min;
    }
    }

    /**
    * 遍历数组,求出数组最大值和最小值
    *
    * @param array
    * @return
    */
    public static ResultInner getResult(double[] array) {
    double max = Double.MIN_VALUE;
    double min = Double.MAX_VALUE;
    for (double d : array) {
    if (d > max) {
    max = d;
    }
    if (d < min) {
    min = d;
    }
    }
    return new ResultInner(max, min);
    }

    public static void main(String[] args) {
    double[] array = new double[5];
    System.out.println("源数组为:");
    for (int i = 0; i < 5; i++) {
    array[i] = 10* Math.random();
    System.out.println(i+" "+array[i]);
    }
    System.out.println("遍历排序和后结果为:");
    getResult(array);
    }
    }

  • 相关阅读:
    谈一谈循环的性能提升
    Web前端性能优化的9大问题
    随机获取一种颜色值的三种方法
    ES6还是ES2015?
    history.back(-1)和history.go(-1)的区别
    关于overflow-y:scroll ios设备不流畅的问题
    前端如何压缩图片
    【转】理解JavaScript之闭包
    关于如何给数字排序
    本地缓存localstorage使用
  • 原文地址:https://www.cnblogs.com/XHJT/p/3889467.html
Copyright © 2020-2023  润新知