java的内部类解析
内部类分为四种:
成员内部类、类方法与普通方法同级;
局部内部类、类方法内部,局部内部类有构造器,通过构造器把外部的变量传入局部内部类再使用是完全可以的
匿名内部类、匿名内部类是唯一没有构造器的类,和局部内部类访问本方法内的final变量和方法外的private变量。jdk1.8不再要求用final修饰。
静态内部类、加了static方法的成员内部类。
优势:
1、内部类相当于多继承;
2、成员内部类可以直接访问其外部类的private属性,外部类要用geter方法;
3、使用内部类可以让类与类之间的逻辑上的联系更加紧密。
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
 | 
public class Outer{    private int i;    public Outer(int i)    {        this.i = i;    }    public void privateInnerGetI()    {        new PrivateInner().printI();    }    private class PrivateInner    {        public void printI()        {            System.out.println(i);        }    }    public class PublicInner    {        private int i = 2;        public void printI()        {            System.out.println(i);        }    }} | 
<wiz_tmp_tag class="wiz-block-scroll">
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
 | 
局部内部类:(方法内部)public static void main(String[] args){    final int i = 0;    class A    {        public void print()            {            System.out.println("AAA, i = " + i);        }    }    A a = new A();    a.print();} | 
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
 | 
//升序,匿名内部类        Collections.sort(listout, new Comparator() {            @Override            public int compare(Object o1, Object o2) {                String map1 = (String) o1;                String map2 = (String) o2;                return map1.compareTo(map2);//            return map1.get("baseTime").toString().compareTo(map2.get("baseTime").toString());            }        });        Collections.sort(listout,new MyComparator()); | 
java的内部类解析的更多相关文章
- java集合框架之java HashMap代码解析
		
java集合框架之java HashMap代码解析 文章Java集合框架综述后,具体集合类的代码,首先以既熟悉又陌生的HashMap开始. 源自http://www.codeceo.com/arti ...
 - Java 面试知识点解析(四)——版本特性篇
		
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
 - Java学习--内部类(一)
		
Java学习--内部类(一) 一. 内部类的定义和特点 class Outer{ privite int num = 5; class Inner{ public void Display(){ Sy ...
 - java jar包解析:打包文件,引入文件
		
java jar包解析:打包文件,引入文件 cmd下: jar命令:package包打包 javac命令:普通类文件打包 Hello.java: package org.lxh.demo; publi ...
 - Java的内部类
		
Java的内部类 首先我们来了解一下什么是内部类? 内部类是指在一个外部类的内部再定义一个类.内部类可以是静态static的,也可用public,default,protected和private修饰 ...
 - Java构造和解析Json数据的两种方法详解二
		
在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面接着介绍用org.json构造和解析Jso ...
 - java使用内部类的好处及其初始化
		
java使用内部类的原因 每个内部类都能独立地继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响 java内部类初始化 ForeCatal ...
 - Java注解全面解析(转)
		
1.基本语法 注解定义看起来很像接口的定义.事实上,与其他任何接口一样,注解也将会编译成class文件. @Target(ElementType.Method) @Retention(Retentio ...
 - 单例模式——Java EE设计模式解析与应用
		
单例模式 目录: 一.何为单例 二.使用Java EE实现单例模式 三.使用场景 一.何为单例 确保一个类只有一个实例,并且提供了实例的一个全局访问点 1.1 单例模式类图 ...
 
随机推荐
- CodeForces 22、23部分题解
			
CodeForces 22A 找严格第二小的...注意只有一种情况,可以sort排序然后unique输出. int a[N]; int main() { int n; while(~scanf(&qu ...
 - HackerRank# Wet Shark and Two Subsequences
			
原题地址 对于给定的两个约束条件,可以通过联立方程组直接解出子序列A的和和子序列B的和,即sum(A) = (r + s) / 2,sum(B) = (r - s) / 2,假设|A|=|B|=n 所 ...
 - HDU 3763 CDs
			
http://acm.hdu.edu.cn/showproblem.php?pid=3763 题意: 两组数据 看重复的有多少 如果每输入一个就去查找的话O(n^2) 会超时 所以可以用二法 第一组数 ...
 - WebService流行框架CXF
			
CXF官方网址:http://cxf.apache.org/ CXF官方网址:官网学习地址:http://cxf.apache.org/docs/index.html 官网下载cxf压缩文件: ...
 - [NOIP2002] 提高组 洛谷P1031 均分纸牌
			
题目描述 有 N 堆纸牌,编号分别为 1,2,…, N.每堆上有若干张,但纸牌总数必为 N 的倍数.可以在任一堆上取若于张纸牌,然后移动. 移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 ...
 - 2016  年末   QBXT  入学测试
			
P4744 A’s problem(a) 时间: 1000ms / 空间: 655360KiB / Java类名: Main 背景 冬令营入学测试题,每三天结算一次成绩.参与享优惠 描述 这是一道有背 ...
 - 学.net必学的东西 10项【不知道我能不能学这么多,!- -,光程序编辑我都累死了】
			
原文发布时间为:2008-10-30 -- 来源于本人的百度文章 [由搬家工具导入] 10项.NET必学的技术2007年08月28日 星期二 14:58 1、WCF (Windows Communic ...
 - 跨多种环境部署 Gearman  -改善应用程序性能和降低服务器负载
			
您可能想要将工作扩散到一个大型机器群体中,或者想要在不同语言和环境之间共享功能,那么开放源码的 Gearman 服务可以让您轻松地将工作分布到网络中的其他机器.本文将介绍 Gearman 的一些典型应 ...
 - Scala入门到精通——第二十四节 高级类型 (三)
			
作者:摆摆少年梦 视频地址:http://blog.csdn.net/wsscy2004/article/details/38440247 本节主要内容 Type Specialization Man ...
 - Office PDF如何旋转页面之后保存
			
直接视图-旋转视图-逆时针,是不行的,旋转之后无法保存,另存为之后也再打开也没有效果. 要点击视图-工具-页面 然后在右边的菜单中点击旋转,然后执行旋转,然后就可以保存了.