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 单例模式类图 ...
随机推荐
- docker镜像没有ifconfig、ping指令
Docker的Ubuntu镜像安装的容器无ifconfig命令和ping命令 解决: apt-get update apt install net-tools # ifconfig apt ...
- 那些“不务正业”的IT培训公司
Before First 大四下期了,现在准备找一份Java开发的实习工作,于是在各大网站上投递简历-智联招聘.51job.拉勾网,慧眼识真金的我必然会把培训机构给过滤掉,对于重庆来说招聘实习的公司少 ...
- 会修修的莫队--BZOJ2120: 数颜色
$n \leq 10000$的数列,$m \leq 10000$个操作,一:单点修改:二:查区间不同数字个数.修改数$\leq 1000$,数字$\leq 1000000$. 我不会告诉您这是三种写法 ...
- ES6__Iterator和for...of循环
/** * Iterator和for...of循环 */ // --------------------------------------------------------------- /** ...
- VK Cup 2015 - Qualification Round 1 A. Reposts [ dp DAG上最长路 ]
传送门 A. Reposts time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- 洛谷——P1262 间谍网络
P1262 间谍网络 题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B.有些间谍收受贿赂,只要给他们一定数量的美元,他们就愿意 ...
- codeforces 301 E. Infinite Inversions
题目: time limit per test 2 seconds memory limit per test 256 megabytes input standard input output ...
- 在d盘中创建一个文件夹 在文件夹里创建三个txt文本
import java.io.File; import java.io.IOException; public class FileDemo { public static void main(Str ...
- CSS 遮罩层、滑出页面
<style> .panel_bak { position:fixed; bottom:0; display:none; width:100%; margin:0px; padding:5 ...
- 一句话从MySQL导出CSV文件
mysql -h <host> -u<user> -p<passport> crm -e "select ....." | csvcut -t ...