- 浏览: 496257 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (502)
- Java (70)
- Linux (10)
- 数据库 (38)
- 网络 (10)
- WEB (13)
- JSP (4)
- 互联网 (71)
- JavaScript (30)
- Spring MVC (19)
- HTML (13)
- CSS (3)
- AngularJS (18)
- Redis (5)
- Bootstrap CSS (1)
- ZooKeeper (4)
- kafka (6)
- 服务器缓存 (4)
- Storm (1)
- MongoDB (9)
- Spring boot (16)
- log4j (2)
- maven (3)
- nginx (5)
- Tomcat (2)
- Eclipse (4)
- Swagger (2)
- Netty (5)
- Dubbo (1)
- Docker (7)
- Hadoop (12)
- OAuth (1)
- webSocket (4)
- 服务器性能 (7)
- Session共享 (1)
- tieye修改 (1)
- 工作 (1)
- 有用的语录 (0)
- https (2)
- common (5)
- 产品开发管理 (1)
- CDN 工作原理 (1)
- APNS、GCM (1)
- 架构图 (3)
- 功能实现分析 (1)
- JMX (1)
- 服务器相关操作命令 (1)
- img02 (0)
- 服务器环境搭建 (9)
- goodMenuBook (1)
- CEInstantPot (0)
- 有用数据 (1)
- 百度地图WEB API (2)
- 正则表达式 (1)
- 样式例子 (2)
- staticRecipePressureCooker.zip (1)
- jCanvas (1)
- 网站攻击方法原理 (1)
- 架构设计 (3)
- 物联网相关 (3)
- 研发管理 (7)
- 技术需求点 (1)
- 计划 (1)
- spring cloud (11)
- 服务器开发的一些实用工具和方法 (1)
- 每天学到的技术点 (4)
- Guava (1)
- ERP 技术注意要点 (2)
- 微信小程序 (1)
- FineRepor (1)
- 收藏夹 (1)
- temp (5)
- 服务架构 (4)
- 任职资格方案 (0)
- osno_test (1)
- jquery相关 (3)
- mybatis (4)
- ueditor (1)
- VueJS (7)
- python (10)
- Spring EL (1)
- shiro (1)
- 前端开发原理与使用 (7)
- YARN (1)
- Spark (1)
- Hbase (2)
- Pig (2)
- 机器学习 (30)
- matplotlib (1)
- OpenCV (17)
- Hystrix (1)
- 公司 (1)
- miniui (4)
- 前端功能实现 (3)
- 前端插件 (1)
- 钉钉开发 (2)
- Jenkins (1)
- elasticSearch使用 (2)
- 技术规范 (4)
- 技术实现原理 (0)
最新评论
java 内部类
1.将一个类的定义放在另一个类的定义内部,这就是内部类。
2.内部类可以随意使用外部类的成员变量(包括私有)而不用生成外部类的对象,这也是内部类的唯一优点。
3.必须先有外部类的对象才能生成内部类的对象,因为内部类的作用就是为了访问外部类中的成员变量。
4.内部类在没有同名成员变量和局部变量的情况下,内部类会直接访问外部类的成员变量,而无需指定Out.this.属性名,否则,内部类中的局部变量会覆盖外部类的成员变量。
5.访问内部类本身的成员变量可用this.属性名,访问外部类的成员变量需要使用Out.this.属性名。
6.如果用static 将内部内静态化,那么内部类就只能访问外部类的静态成员变量,具有局限性
7.内部类被静态化,因此Out.In可以当做一个整体看,可以直接new出内部类的对象(不用new出外部类对象再new出内部类对象)
8.如果一个内部类只希望被外部类中的方法操作,那么可以使用private声明内部类
9.私有内部类只有外部类可控制它
10.方法内部类传形参时必须使用final定义(final在这里并没有特殊含义,只是一种表示形式而已)
11.成员内部类,就是作为外部类的成员,可以直接使用外部类的所有成员和方法,即使是private的。同时外部类要访问内部类的所有成员变量/方法,则需要通过内部类的对象来获取。
12.成员内部类(static的除外)不能含有static的变量和方法。(java虚拟机要求所有的静态变量必须在对象创建之前完成)
实例1:
分析:
1.程序编译过后会产生两个.class文件,分别是Out.class和Out$In.class($表示In是Out里面的)
2.Out.In in = new Out().new In()可以用来生成内部类的对象,这种方法存在两个小知识点需要注意
(1).开头的Out是为了标明需要生成的内部类对象在哪个外部类当中
(2).必须先有外部类的对象才能生成内部类的对象,因为内部类的作用就是为了访问外部类中的成员变量
内部类中的变量访问形式
静态内部类
分析:
1.如果用static 将内部内静态化,那么内部类就只能访问外部类的静态成员变量,具有局限性
2.因为内部类被静态化,因此Out.In可以当做一个整体看,可以直接new 出内部类的对象(通过类名访问static,生不生成外部类对象都没关系)
私有内部类
分析:
1.如果一个内部类只希望被外部类中的方法操作,那么可以使用private声明内部类
2.私有内部类只有外部类可控制它
方法内部类
分析:
1.方法内部类,如果此时我们需要往外部类的方法中传入参数,那么外部类的方法形参必须使用final定义
2.final在这里并没有特殊含义,只是一种表示形式而已
3.方法内部类传形参时必须使用final定义(final在这里并没有特殊含义,只是一种表示形式而已)
参考原文:http://www.cnblogs.com/nerxious/archive/2013/01/24/2875649.html
1.将一个类的定义放在另一个类的定义内部,这就是内部类。
2.内部类可以随意使用外部类的成员变量(包括私有)而不用生成外部类的对象,这也是内部类的唯一优点。
3.必须先有外部类的对象才能生成内部类的对象,因为内部类的作用就是为了访问外部类中的成员变量。
4.内部类在没有同名成员变量和局部变量的情况下,内部类会直接访问外部类的成员变量,而无需指定Out.this.属性名,否则,内部类中的局部变量会覆盖外部类的成员变量。
5.访问内部类本身的成员变量可用this.属性名,访问外部类的成员变量需要使用Out.this.属性名。
6.如果用static 将内部内静态化,那么内部类就只能访问外部类的静态成员变量,具有局限性
7.内部类被静态化,因此Out.In可以当做一个整体看,可以直接new出内部类的对象(不用new出外部类对象再new出内部类对象)
8.如果一个内部类只希望被外部类中的方法操作,那么可以使用private声明内部类
9.私有内部类只有外部类可控制它
10.方法内部类传形参时必须使用final定义(final在这里并没有特殊含义,只是一种表示形式而已)
11.成员内部类,就是作为外部类的成员,可以直接使用外部类的所有成员和方法,即使是private的。同时外部类要访问内部类的所有成员变量/方法,则需要通过内部类的对象来获取。
12.成员内部类(static的除外)不能含有static的变量和方法。(java虚拟机要求所有的静态变量必须在对象创建之前完成)
实例1:
//外部类 class Out { private int age = 12; //内部类 class In { public void print() { System.out.println(age); } } } public class Demo { public static void main(String[] args) { Out.In in = new Out().new In(); in.print(); //或者采用下种方式访问 /* Out out = new Out(); Out.In in = out.new In(); in.print(); */ } }
分析:
1.程序编译过后会产生两个.class文件,分别是Out.class和Out$In.class($表示In是Out里面的)
2.Out.In in = new Out().new In()可以用来生成内部类的对象,这种方法存在两个小知识点需要注意
(1).开头的Out是为了标明需要生成的内部类对象在哪个外部类当中
(2).必须先有外部类的对象才能生成内部类的对象,因为内部类的作用就是为了访问外部类中的成员变量
内部类中的变量访问形式
class Out { private int age = 12; class In { private int age = 13; public void print() { int age = 14; System.out.println("局部变量:" + age);//14 System.out.println("内部类变量:" + this.age);//13 System.out.println("外部类变量:" + Out.this.age);//12 } } } public class Demo { public static void main(String[] args) { Out.In in = new Out().new In(); in.print(); } }
静态内部类
class Out { private static int age = 12; static class In { public void print() { System.out.println(age); } } } public class Demo { public static void main(String[] args) { Out.In in = new Out.In(); in.print(); } }
分析:
1.如果用static 将内部内静态化,那么内部类就只能访问外部类的静态成员变量,具有局限性
2.因为内部类被静态化,因此Out.In可以当做一个整体看,可以直接new 出内部类的对象(通过类名访问static,生不生成外部类对象都没关系)
私有内部类
class Out { private int age = 12; private class In { public void print() { System.out.println(age); } } public void outPrint() { new In().print(); } } public class Demo { public static void main(String[] args) { //此方法无效 /* Out.In in = new Out().new In(); in.print(); */ Out out = new Out(); out.outPrint(); } }
分析:
1.如果一个内部类只希望被外部类中的方法操作,那么可以使用private声明内部类
2.私有内部类只有外部类可控制它
方法内部类
class Out { private int age = 12; public void Print(final int x) { class In { public void inPrint() { System.out.println(x); System.out.println(age); } } new In().inPrint(); } } public class Demo { public static void main(String[] args) { Out out = new Out(); out.Print(3); } }
分析:
1.方法内部类,如果此时我们需要往外部类的方法中传入参数,那么外部类的方法形参必须使用final定义
2.final在这里并没有特殊含义,只是一种表示形式而已
3.方法内部类传形参时必须使用final定义(final在这里并没有特殊含义,只是一种表示形式而已)
参考原文:http://www.cnblogs.com/nerxious/archive/2013/01/24/2875649.html
发表评论
-
elasticSearch使用
2022-04-27 08:42 416ElasticSearch 基于Apache Lucene构建 ... -
IDEA 快捷键
2022-03-02 16:55 245大小写转换快捷键 ctr+shift+u IDEA ... -
每天学到的技术点3
2022-02-21 20:01 2451.TEXT与BLOB的区别,二者 ... -
zookeeper dubbo 安装
2021-12-04 19:27 315docker-machine ssh default d ... -
JVM 调优与测试
2021-05-22 22:24 580VisualVM 能够监控线程,内存情况,查看方法的CPU ... -
百度人脸识别
2021-05-21 16:11 363package com.gaojinsoft.htwy.y20 ... -
springboot tomcat 参数配置与数据库连接池多少的性能分析
2021-05-12 22:15 560参数配置与数据库连接池多少的性能分析 tomcat线程数 ... -
log4j2应用
2020-07-23 14:16 363https://blog.csdn.net/giventian ... -
文件上传下载
2020-07-06 13:16 4201.文件ID,名字(源,目标),大小,路径(/aa/bb/s. ... -
base64与file 相互转换
2019-10-23 18:19 775base64与file 相互转换 import org. ... -
百度身份证识别
2019-10-18 18:19 673package com.gaojinsoft.htwy.y20 ... -
JAVA 实用方法
2019-05-16 09:50 353//得到xml文件中的sql文本 public St ... -
导出内容到excel文件方法
2019-05-15 10:52 511@SuppressWarnings("rawtype ... -
要求fsss
2019-09-21 21:30 304/* */ package com.midea.com ... -
反射、类信息、动态代理、CGLIB动态代理原理与测试
2019-01-29 21:04 485package com.midea.common.classT ... -
JVM 监控工具
2019-01-21 18:04 381JVM 监控工具 //========== ... -
java 线程池线程复用原理
2019-01-15 17:10 1160java 线程池线程复用原理 其实就一个大run()把其 ... -
LockSupport原理
2019-01-11 18:01 700LockSupport原理 在Java语言中,每一个对象有 ... -
runnable与thread 区别
2019-01-11 14:49 681runnable与thread 区别 在java中可有两种 ... -
Java的Future模式
2019-01-11 10:08 444Java的Future模式 runnable与thread ...
相关推荐
Java 内部类详解 Java 内部类是一种高级特性,允许在一个类的定义内部创建另一个类。这种设计模式提供了更灵活的代码组织方式,同时还可以实现特定的封装和访问控制。内部类主要分为四种类型:静态内部类、成员内部...
### Java内部类总结 在Java编程语言中,内部类是一个重要的概念,它允许开发者在一个类的内部定义另一个类。这种特性极大地增强了代码的封装性和复用性,同时也为解决特定问题提供了灵活的方法。本文将围绕Java内部...
### Java内部类详解 #### 一、内部类的分类与概念 Java的内部类机制是其强大特性之一,它允许类作为另一个类的成员存在,从而增强了代码的封装性和复用性。根据定义和作用域的不同,Java内部类主要分为四类: 1. ...
Java 内部类是Java语言特性中的一个重要组成部分,它允许我们在一个类的内部定义另一个类。内部类可以访问外部类的所有成员,包括私有成员,这使得内部类在实现复杂逻辑和封装上具有很大的灵活性。下面我们将详细...
### Java内部类的应用场景 #### 场景一:当某个类除了它的外部类,不再被其他的类使用时 内部类的使用场景之一是当某个类仅需被其外部类使用时。这种情况下,将此类定义为内部类可以提高代码的封装性和可维护性。 ...
Java内部类是Java语言提供的一种独特特性,它允许我们在一个类的定义内部定义另一个类。这种内部类可以是成员内部类、局部内部类、匿名内部类或静态内部类,每种都有其特定的用途和使用场景。在这个"java内部类使用...
12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类.zip12.java内部类...
Java内部类是Java语言的一个特色特性,它允许我们在一个类的内部定义另一个类。这种设计模式在处理一些特定情况时非常有用,例如实现匿名回调、封装特定逻辑或创建与外部类有紧密关系的类。本篇文章将深入探讨Java...
Java内部类是Java语言的一个独特特性,它允许我们在一个类的内部定义另一个类。这种设计提供了更高级别的封装和组织代码的方式。以下是关于内部类及其相关知识点的详细说明: 1. **内部类基本语法** - **实例内部...
### JAVA内部类总结 在Java编程语言中,内部类(Inner Classes)是一种非常重要的特性,它允许我们在一个类的内部定义另一个类。这种结构不仅能够提高代码的组织性,还能帮助我们更好地处理类与类之间的关系。根据...
Java内部类是Java语言提供的一种独特机制,它允许在一个类的内部定义另一个类。这种设计模式使得代码结构更紧凑,可以更好地封装和隐藏实现细节,同时也增强了代码的复用性。内部类分为几种类型,包括成员内部类、...
Java 内部类总结 Java 内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在的。内部类可为静态,可用 protected 和 private 修饰(而外部类只能使用 public 和缺省的包...
Java内部类是Java语言特性中一个独特而强大的部分,它允许在一个类的内部定义另一个类。内部类可以访问外部类的所有成员,包括私有成员,这使得内部类在实现某些特定设计模式时非常有用。本篇文章将深入探讨Java中的...
Java内部类详解 Java内部类是Java语言中的一种特殊类别,它是指定义在另外一个类内部的类。内部类可以访问外部类的所有成员变量和方法,包括私有的变量和方法。内部类可以分为四种:成员内部类、静态嵌套类、方法...
谈Java内部类的四个应用场景
Java内部类是Java语言中一个独特且强大的特性,它允许我们在一个类的内部定义另一个类。内部类提供了增强封装的能力,使得内部类可以被隐藏在外部类中,仅对外部类可见,从而增加了代码的隐私性和安全性。同时,内部...
### Java内部类的作用 #### 一、定义及概念 内部类,顾名思义,指的是一个定义在另一个类内部的类。这样的结构让内部类能够访问外部类的成员(包括私有成员),并且允许内部类拥有不同的访问级别,如`private`、`...
Java内部类是Java语言的一个重要特性,它允许我们在一个类的内部定义另一个类。这种设计模式使得代码结构更加紧凑,同时也提供了更高级的封装和抽象。内部类主要有两种类型:成员内部类和局部内部类。 1. 成员内部...