java内部类的作用(一)----解决函数参数返回的问题

我们知道一个函数只有一个返回值,如果当返回很多数据的时候,这个返回值是需要处理的,也就是返回值的类型(数组或者自定义类来解决)

当我们要处理做一个处理的时候,需要返回两个以上的参数的时候,就可以用内部类解决这个问题

而如果此时这个作为返回值的内部类不需要引用外围类对象的话,就可以加上STATIC  静态内部类  取消产生内部类的作用


因为内部类对象总有一个隐式引用,它指向了创建它的外部对象


当你使用了静态Static来修饰这个内部类的时候,这个引用将被取消。


也就是有这样一个特性:

静态内部类的对象除了没有对生成它的外围类对象的引用特权外,与其他所有内部类完全一样


接下来我们看看java技术核心提供的代码:

内部类:

package org.innerclass.operate;

public class ArrayAlg {

	public static class Pair{
		private double first;
		private double second;

		public Pair(double f,double s){
			first = f;
			second = s;
		}

		public double getFirst() {
			return first;
		}
		
		public double getSecond() {
			return 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);
	}
}
测试类:
package org.innerclass.operate;

public class StaticInnerClassTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		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());
		}
	}

}

这里还有一句话:

这个示例中内部类必须是静态的,因为外部类对象是在静态方法中构造这个内部类的对象的。

如果没有static,表示这个内部类是静态内部类,那么编译器将会给出错误报告:

没有可用的隐式ArrayAlg类型对象初始化内部类对象




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值