静态内部类

package com.sadhu;
import java.util.*;
/**
静态内部类
只有静态内部类才能用static关键字修饰。
静态内部类可以单独实例化,不需要外部类的引用对象
*/
public class Sample
{
    public static void main(String[] args)throws Exception
    {
        double[] d = new double[20];
        for(int i = 0;i < d.length;i++)
        {
            d[i] = 100*Math.random();
        }
        ArrayAlg.Pair p = ArrayAlg.minMax(d);
        System.out.println("min= " + p.getFirst());
        System.out.println("max= " + p.getSecond());
    }
}
class ArrayAlg
{
    public static class Pair
    {
        public Pair(double f,double s)
        {
            first = f;
            second = s;
        }
        public double getFirst()
        {
            return first;
        }
        public double getSecond()
        {
            return second;
        }
        private double first;
        private double second;
    }
    public static Pair minMax(double[] values)
    {
        double min = Double.MAX_VALUE;
        double max = Double.MIN_VALUE;
        for(double v : values)
        {
            if(min > v)
            {
                min = v;
            }
            if(max < v)
            {
                max = v;
            }
        }
        return new Pair(min,max);
    }
}

静态内部类,布布扣,bubuko.com

时间: 2024-11-06 17:11:53

静态内部类的相关文章

非静态内部类创建静态实例造成的内存泄漏

请大家思考,为什么会内存泄漏? 1. 首先,非静态内部类默认会持有外部类的引用. 2. 然后又使用了该非静态内部类创建了一个静态的实例. 3. 该静态实例的生命周期和应用的一样长,这就导致了该静态实例一直会持有该Activity的引用,导致Activity的内存资源不能正常回收. 正确的做法有两种,一种是将内部类testResource改成静态内部类,还有就是将testResource抽取出来,封装成一个单例,如上一个例子那样,但是需要context时单例要切记注意Context的泄漏,使用ap

Java学习(十六)、成员内部类,静态内部类,匿名内部类,局部内部类

定义:将一个类定义在另一个类的内部.内部的类称为内部类; public class Outer{ class inner{ //省略 } } 特点: ①   内部类可以很好的实现隐藏,可以使用protected,private修饰符; ②   内部类可以直接访问外部类的所有成员,包括私有成员; ③   外部类不能直接访问内部类的成员,必须首先要建立内部类的对象才能访问; ④   内部类可以解决一些问题,比如间接的去实现多继承.可以避免修改接口而实现同一个类中两种同名方法的调用; 成员内部类及应用

Java内部类小程序(成员内部类,静态内部类,匿名内部类)

1 /** 2 * 测试java内部类(成员内部类,静态内部类,匿名内部类) 3 * 局部内部类不常用,就不写了. 4 * @package :java05 5 * @author shaobn 6 * @Describe : 7 * @Time: 2015-9-6 下午8:32:38 8 */ 9 public class TestInner { 10 11 /** 12 * @author shaobn 13 * @Describe : 14 * @param args 15 * @Time

Java 静态内部类与非静态内部类 学习记录.

目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合,我并不是很清楚,留下一些值得思考的问题作为记录,说不定以后能自己来填.于是就会有这篇文章啦. 常规使用方法我也不想介绍,网上一大把,我就说说比较容易错的,值得注意的地方. 注意 这篇文章只是分享一下我对内部类的一些研究与困惑吧,说不定对大家有帮助,说不定能引导大家一起思考学习.Java语法知识其实

Java非静态内部类中为什么不能有静态变量却可以有常量?

如:public class InnerClassDemo{ int x; class A{ static int a = 0;//这样写是不合法的. static final int b=0;//这样写是合法的    }}解答:简单说,定义一个静态的域或者方法,要求在静态环境或者顶层环境,这里静态环境具体说,你的例子里如果加上 static class A就ok.非静态内部类 依赖于一个外部类对象,而静态域/方法是不依赖与对象——仅与类相关,因此,非静态内部类中不能定义静态域/方法,编译过不了

Java内部类详解--成员内部类,局部内部类,匿名内部类,静态内部类

说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉.原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法.今天我们就来一探究竟.下面是本文的目录大纲: 一.内部类基础 二.深入理解内部类 三.内部类的使用场景和好处 四.常见的与内部类相关的笔试面试题 若有不正之处,请多谅解并欢迎批评指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/dolphin0520/p/3811445.html 一

Java中的内部类(成员内部类、静态内部类、局部内部类、匿名内部类)

Java中的内部类(成员内部类.静态内部类.局部内部类.匿名内部类) 神话丿小王子的博客主页 我们先看这样一段话:人是由大脑.肢体.器官等身体结果组成.而组成我们人体的心脏它也有自己的属性和行为(血液.跳动),显然,此处不能单方面用属性或者方法表示一个心脏了,而需要一个类,但是这个类要依赖于人这个类存在(因为心脏不能脱离人体而存活,当然不考虑现今社会的发达科技,只从正常情况下来说),所心脏以需要写在人类的内部.内部类就相当于其中的某个器官之一. 首先看看什么是内部类:在类的内部定义另一个类.没错

Java知多少(37)静态内部类、匿名内部类、成员式内部类和局部内部类

内部类可以是静态(static)的,可以使用 public.protected 和 private 访问控制符,而外部类只能使用 public,或者默认. 成员式内部类 在外部类内部直接定义(不在方法内部或代码块内部)的类就是成员式内部类,它可以直接使用外部类的所有变量和方法,即使是 private 的.外部类要想访问内部类的成员变量和方法,则需要通过内部类的对象来获取. 请看下面的代码: 1 public class Outer{ 2 private int size; 3 public cl

内部类(嵌套类、内置类)访问规则、定义原则、静态内部类、匿名内部类

一.内部类 1.内部类的访问规则: 1.内部类可以直接访问外部类中的成员,包括私有.之所以可以直接访问外部类中的成员,是因为内部类中持有了一个外部类的引用,格式为:外部类明.this 2.外部类要访问内部类,必须创建内部类对象. 2.访问格式 1.当内部类定义在外部类的成员位置上是,而且非私有,可以在外部其他类中 可以直接建立内部类对象 格式: 外部类明.内部类名 变量名=外部类对象.内部类对象: Outer.Inter in=new Outer().new Inner(); 2.当内部类在成员

Java 静态内部类的使用

以前一直以为静态内部类没用,现在发现在特定条件下使用静态内部类会更加方便. 静态内部类的使用最佳的示例莫过于jdk里面的LinkedList类了. 查看LinkedList的源码,LinkedList的节点用一个静态内部类Node表示,代码如下 private static class Node<E> { E item; Node<E> next; Node<E> prev; Node(Node<E> prev, E element, Node<E&g