- 浏览: 1573561 次
- 来自: 上海
文章分类
- 全部博客 (374)
- Java (101)
- Struts (54)
- Oracle (30)
- JavaScript (16)
- Spring (27)
- Hibernate (16)
- MyEclipse (3)
- JSF (1)
- FreeMarker (2)
- SiteMesh (2)
- JfreeChart (2)
- Ibatis (2)
- JSP (12)
- MyBatis (4)
- SWFupload (1)
- EJB (4)
- Jboss (4)
- WebService (2)
- Linux (16)
- Android (2)
- XML (6)
- Java 网络编程 (13)
- AXIS2 (1)
- FTP (1)
- Jswing (1)
- Socket (3)
- 杂文选集 (6)
- solr (2)
- PS (1)
- Tomcat (7)
- JDBC (9)
- Highcharts (1)
- maven (1)
- Nodejs (0)
- navicat (2)
- Exception (5)
- eclipse (3)
- jQuery (1)
- springMVC (4)
- MySQL (11)
- SVN (1)
- Sql Server (1)
- zookeeper (1)
- JVM (1)
- Groovy (2)
- Git (1)
- Nginx (1)
- DynamicReport (1)
- IDEA (2)
- JasperReports (1)
- Postgresql (2)
- Mac (1)
- gradle (1)
- 数据结构算法 (1)
最新评论
-
hpu145:
引用引用
java 千分位的添加和去除 -
被遗忘的下路:
少了个junit-4.8.2的包
SSH2整合完整案例(四十三) -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
emoji 表情图片解决方法 -
caipeiming:
这个挺好JavaScript实现input输入框控件只允许输入 ...
js 控制文本框只能输入中文、英文、数字等 -
双子树:
东西太好啦受教啊
Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)
内部类,静态内部类,全局内部类
局部内部类
匿名内部类
/** * 内部类的访问规则: * 1.内部类可以直接访问外部类中的成员,包括私有 * 之所以可以直接访问外部类中的成员,是因为内部类中持有一个外部类的引用, 格式为 外部类名.this.成员 * 2.外部类要访问内部类,必须建立对象 * *访问格式: *当内部类定义在外部类的成员位置上,而且非私有, 可以在外部其他类中可以直接建立内部类对象. *格式: * 外部类名.内部类名 变量名=外部类对象.内部类对象; * Outer.Inner in=new Outer().new Inner(); *2,当外部类在成员位置上,就可以被成员修饰符所修饰 * 比如: private : 将外部类中的内部类进行封装 * static : 内部类就具备static 特性 ,只能访问 外部类的static成员.出现访问局限 * (静态内部类: 一般是 应用的数据全是 静态的数据的时候就可以定了) * *3.其他外部类中怎么访问 静态内部类的非静态成员 * new Outer.Inner2().function(); * *4.其他外部类中怎么访问静态内部类中的静态成员. * Outer.Inner2.function1(); * * 注意 : 当内部类中定义了静态成员,该内部类必须是static的 * 当外部类中的静态方法访问内部类时候,该内部类也必须是static的 * */ class Outer{ private int x=3; private static int y=5; //外部类中 访问内部类中的成员 void method(){ Inner in=new Inner(); in.funtion(); } //放在一个内的内部 class Inner{ int x=4; //可以直接访问外部类中的成员 void funtion(){ int x=6; System.out.println("内部类:"+x); // 6 System.out.println("内部类:"+this.x); // 4 System.out.println("内部类:"+Outer.this.x); // 3 } /* 非静态内部类中不能有 静态成员 static int y=8; static void function1(){ System.out.println("内部类:"+x); }*/ } private class Inner1{ int x=4; void function(){ int x=6; System.out.println("内部类:"+x); // 6 System.out.println("内部类:"+this.x); // 4 System.out.println("内部类:"+Outer.this.x); // 3 } } static class Inner2{ //静态内部类的 非静态成员 void function(){ System.out.println("静态内部类:"+y); } //静态内部类的静态成员 static void function1(){ System.out.println("静态内部类:"+y); } } //外部类中的静态成员 public static void method1(){ //访问 该外部类中的静态内部类静态方法 Inner2.function1(); //new Inner1().function(); //报错 因为 Inner1 不是静态内部类 } } public class InnerClassDemo { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Outer out=new Outer(); out.method(); //如果直接访问内部类中的额function Outer.Inner in=new Outer().new Inner();// 外部类对象 .new 内部类对象 in.funtion(); //静态内部类中的非静态成员 Outer.Inner2 in2=new Outer.Inner2(); in2.function(); new Outer.Inner2().function(); //静态内部类 中的静态成员 Outer.Inner2.function1(); } } /** * 当描述事物时, 事物的内部还有事物,该事物用内部类来描述 * 因为内部事务在使用外部事务的内容. * 比如 身体 和 心脏 的关系 */ class Body{ private class XinZang{ //之所以私有 , 是不让任何人访问 int jump=270; //跳动的次数 int speed=80; //血流速度 void show(){ System.out.println("心跳:"+jump+";血流速度:"+speed+"脉"); } } public void seeXinZang(){ // 一个心脏病人 要看医生 //里面可以加入判断 是不医生? 身体是不是有病? 有:就给他们看 没有:就不给 等等 new XinZang().show(); } //比如还可以 是否 被女朋友踹了? 是: 就伤心 不是: 就开心 哈哈 }
局部内部类
/** * 内部类定义在局部时候 * 1.不可以被成员修饰符修饰 (private static 等) * 2.可以直接访问外部类中的成员,因为还持有外部类中的引用 * 但是不可以访问它所在的局部中的变量, 只能访问被final修饰的局部变量. */ class Outer{ int x=3; void method(final int k){ int x=4; final int y=5; class Inner{ //局部的内部类 void function(){ System.out.print(Outer.this.x); System.out.print(y); System.out.print(k); } } new Inner().function(); } } public class InnerClassDemo { public static void main(String[] args) { // TODO Auto-generated method stub Outer out=new Outer(); out.method(7); out.method(8); } }
匿名内部类
/** * 匿名内部类 * 1.其实就是一个内部类的简写格式 * 2.定义匿名内部类的前提 * 内部类必须是继承一个类或者实现接口 * 3.匿名内部类的格式 * new 父类或者接口(){定义子类的内容}.成员 * * 4.其实匿名内部类就是一个匿名子类对象.而且这个对象有点胖. * 5.匿名内部类中定义方法 最好不要超过3个. * */ abstract class AbsDemo{ abstract void show(); } class Outer{ int x=3; class Inner extends AbsDemo{ void show(){ System.out.println("show"+Outer.this.x); } } public void function(){ //不采用匿名内部类 new Inner().show(); } //采用 匿名内部类实现 public void function1(){ //这就是匿名内部类 new AbsDemo() { //如果只用一次 @Override void show() { //需要先实现 抽象类中的方法 System.out.println("show"+Outer.this.x); } }.show(); new AbsDemo() { //如果只用一次 @Override void show() { //需要先实现 抽象类中的方法 System.out.println("show"+Outer.this.x); } void method(){ //子类特有的 System.out.println("method:"+Outer.this.x); } }.method(); //发现 要进行多方法调用的时候 每次都要创建一个对象 } } public class AnonymousInner { public static void main(String[] args) { new Outer().function(); } } /*** * 题目 补足代码 采用匿名内部类完成 */ interface Inter{ void method(); } class Test{ //补足代码 采用匿名内部类完成 static Inter function(){ return new Inter(){ public void method(){ System.out.println("method show run"); } }; } } class AnonymousInnerTest{ public static void main(String[] args){ //根据这句话 在上面补足代码 Test.function().method(); //Test.function(): Test类中有一个静态方法 function //.method():function运算后返回的结果对象是 一个Inter对象,因为只有 Inter采用metho方法 } } /** * 面试题:如果没有接口 没有 父类 请写一个 匿名抽象类调用一个方法 */ class InnerTest{ public static void main(String [] args){ new Object(){ public void function(){ System.out.println("function run"); } }.function(); } }
发表评论
-
检测一个字符串是否在jvm的常量池中
2018-12-18 17:34 948public static boolean inPool( ... -
UTC时间, GMT时间 ,夏令时
2017-08-18 15:12 2233经常混淆于此,特地研究了一下,记录在此以备忘。 整个地 ... -
java 反射List
2017-02-18 01:58 5598package com.enhance.reflect; ... -
JDK1.5 Exchange 两个线程互换数据
2016-08-04 18:00 914import java.util.concurrent ... -
JDK1.5 CountDownLatch
2016-08-04 16:25 1023/* * 还有一个利用场景: ... -
java CyclicBarrier 循环障碍阻塞
2016-08-03 23:54 960//一个同步辅助类,它允许一组线程互相等待,直到到达某个公 ... -
java 信号灯 Semaphore
2016-08-03 23:53 1790更多介绍http://blog.csdn.net/java20 ... -
java 使用读写锁设计一个缓存模型
2016-08-03 23:49 1373import java.util.HashMap; ... -
java 读写锁
2016-08-03 23:46 780import java.util.Random; i ... -
java 多个线程之间同步通信
2016-08-02 17:16 2369import java.util.concurrent ... -
jdk1.5 锁 Lock 和 Condition
2016-08-02 17:03 884// lock 练习 public class Lock ... -
JDK1.5 获取线程执行结果 Callable Future
2016-08-02 15:08 1132import java.util.Random; i ... -
JDK1.5 线程池
2016-08-02 14:48 766import java.util.concurrent ... -
java 多线程ThreadLocal
2016-08-02 00:13 1112import java.util.Random; ... -
java 定时器 Timer
2016-08-01 16:53 3846import java.util.Calendar; ... -
java 多线程同步+通信
2016-08-01 16:48 928/** *父子线程 交替打印10 次, 100次 ... -
java 线程同步
2016-08-01 16:43 980import java.util.concurrent.l ... -
java多线程练习
2016-08-01 16:35 1802Java 传统多线程 Java 多线程同步 Java 多线 ... -
java 传统多线程
2016-08-01 16:34 967/** * 传统多线程 */ public ... -
java 图片,剪切,缩放
2016-01-06 10:21 2177package out; import ja ...
相关推荐
232 11.7 习题 232 第12章 内部类(精彩视频:71分钟) 234 12.1 非静态内部类 234 12.1.1 创建非静态内部类 234 12.1.2 在外部类中访问内部类 235 12.1.3 在外部类外访问内部类 236 12.1.4 在内部类中访问外部类 ...
1. 选择排序 2. 冒泡排序 3. 插入排序 4. 希尔排序 5. 堆排序 6. 归并排序 7.... 8.... 9. 计数排序 10. 桶排序 十种排序代码 我的博文地址:http://blog.csdn.net/u010156024/article/details/48932219
一个“.java”原文件中是否可以包括多个类(不是内部类)? 53.掌握内部类和接口的概念 54.StringTokenizer类的使用 55.数据结构,如何遍历List中的元素? 如果要按照键值保存或者访问数据,使用什么数据结构? ...
3.8 内部类 3.9 使用Java的文档注释 第4章 面向对象(下) 4.1 类的继承 4.2 抽象类与接口 4.3 对象的多态性 4.4 异常 4.5 包 4.6 访问控制 4.7 使用jar文件 第5章 多线程 5.1 如何创建与理解线程 5.2 多线程的同步 ...
第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实例1 开发第一个Java程序 7 第2章 Java...
第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实例1 ...
第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实例1 开发第一个...
1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 7 2、Java有没有goto? 7 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte上,能否作用在...
1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 7 2、Java有没有goto? 7 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte上,能否作用在...
第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实例1 开发第一个Java程序 7 第2...
第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 1.2.3 配置环境 5 1.2.4 测试JDK配置是否成功 7 实例1 开发第一个Java程序 7 第2章 Java...
1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 7 2、Java有没有goto? 7 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte上,能否作用在...
11、工作日程:用户可按需写自己的工作日程安排,选择日期后填写,到了日程安排那天,登陆oa无纸化办公系统即可收到文字及动画与语音提示。同时,写完的日程可修改,删除操作等。 12、工作计划:用户可在系统内写...
代码块、内部类 面向对象的三大特征:封装、继承、多态 其它关键字:this、super、abstract、interface、static、final、package、import 谈谈你对面向对象中类和对象的理解,并指出二者的关系? 类:抽象的、概念上...
1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 7 2、Java有没有goto? 7 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte上,能否作用在...
1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 8 2、Java有没有goto? 8 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte上,能否作用在...
1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 7 2、Java有没有goto? 7 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte上,能否作用在...