- 浏览: 585103 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (423)
- windows2003 (1)
- exception (3)
- java (91)
- eclipse (14)
- java web (3)
- javaScript (11)
- 装机 (1)
- sql (34)
- outlook (1)
- html (8)
- JAVA 不同区域服务器引起的乱码解决 (2)
- strtus (3)
- http (1)
- 设计模式 (4)
- Java对存储过程的调用方法 (0)
- java-数据库操作 (0)
- jdbc (7)
- dwr (2)
- 软件版本号 (1)
- jxls (1)
- ExtJS (3)
- Ajax (1)
- git (12)
- linux (20)
- mysql (14)
- maven (16)
- easyui (1)
- 日常备注 (1)
- spring (9)
- others (1)
- windows快捷键 (1)
- 工作备注 (9)
- 工作杂项 (0)
- photoshop (1)
- 开发环境配置 (0)
- jboss (1)
- 报表 (1)
- 图表 (1)
- fckeditor (1)
- 调试bug (2)
- 口令 (1)
- css (2)
- mongodb (7)
- restful (1)
- jsp (5)
- jpa (2)
- bug (1)
- js (2)
- Json (1)
- POI (1)
- xml (2)
- webstorm (1)
- java swing (1)
- ubuntu (3)
- mongo (27)
- 自我学习 (0)
- 草稿 (0)
- 单元测试 (1)
- 数据库 (2)
- ide (1)
- 大数据 (0)
- uml (1)
- spring-boot (1)
- mybatis (3)
- oracle (2)
- jetty (1)
- 学习 (0)
- 系统调优 (1)
- tomcat (2)
- kettle (1)
- 学习资源 (1)
- 架构 (2)
- database (4)
- idea (1)
- consul (1)
- hadoop (2)
- nginx (3)
- 认证 (1)
- 加密 (1)
- connection pool (1)
- loadrunner (1)
- tps (1)
- 翻墙工具 (1)
- redis (2)
- redis jedis shardjedis (1)
- spring boot (1)
- 认证授权 (1)
- ssh (1)
- svn (2)
- 多线程 (1)
最新评论
-
abcdeudi:
不错
接口和抽象类什么时候使用才合适? -
羽翼的心动:
POI中对Word处理,读取不到书签。如果要处理书签的话,就只 ...
POI根据模板(excel表头)导出excel -
pdf1192012:
高质量文章
接口和抽象类什么时候使用才合适? -
沐忆潼:
...
POI根据模板(excel表头)导出excel -
422937561:
高质量文章
接口和抽象类什么时候使用才合适?
1)在方法中定义的内部类,如果要访问方法中定义的本地变量或方法的参数,则变量必须被声明final。
2)内部类可以声明为private或protected;还可以声明为abstract或final。
3)内部类可以声明为static的,但此时就不能再使用外部类的非static的成员变量和非static的成员方法;
4)非static的内部类中的成员不能声明为static的,只有在顶层类或static的内部类中才可声明static成员。
5)若在某个方法中声明一个内部类,则这个内部类的执行周期限于这个方法中,只在这个方法中可见。
6)实例化内部类
7)实例化 继承了内部类的子类
7.1)
理解好 7)中步骤2)中的car.super(),它为当前子类的父类的构造方法。进一步构造代码如下:
程序运行结果为:Wheel2
7.2)
即是形参所在(子)类的父类,而不是实参所在(子)类的父类。具体如下:
7.3)
注意:7.1)和7.2)中标红部分代码不能去掉。(貌似是必须的构造函数。)
8.1)内部类的应用1:内部类实现接口,同时隐藏接口的具体实现细节。
8.2)内部类的应用2:解决多个接口或父类中有方法名重名的问题。
8.3)内部类的应用3:解决类的多继承问题
摘自:孙鑫老师的java视频。
2)内部类可以声明为private或protected;还可以声明为abstract或final。
3)内部类可以声明为static的,但此时就不能再使用外部类的非static的成员变量和非static的成员方法;
4)非static的内部类中的成员不能声明为static的,只有在顶层类或static的内部类中才可声明static成员。
5)若在某个方法中声明一个内部类,则这个内部类的执行周期限于这个方法中,只在这个方法中可见。
6)实例化内部类
class Outer { private static int index=100; class Inner { private int index=50; void print() { int index=30; System.out.println(index); } } Inner getInner(){ return new Inner(); } } class Test { public static void main(String[] args) { Outer outer=new Outer(); Outer.Inner inner1=outer.getInner();//实例化内部类方法1 Outer.Inner inner2=outer.new Inner();//实例化内部类方法2 } }
7)实例化 继承了内部类的子类
class Car { class Wheel { } } class PlaneWheel extends Car.Wheel { PlaneWheel(Car car) { car.super();//步骤2)再实例化内部类Car.Wheel,利用了super()函数 } public static void main(String[] args) { Car car=new Car();//步骤1)先实例化Car类 PlaneWheel pw=new PlaneWheel(car); } }
7.1)
理解好 7)中步骤2)中的car.super(),它为当前子类的父类的构造方法。进一步构造代码如下:
class Car { class Wheel { Wheel(){ System.out.println("Base1"); } } } class Car2 { class Wheel2 { Wheel2(){ System.out.println("Base2"); } } } class PlaneWheel2 extends Car2.Wheel2 { PlaneWheel2(Car2 car2) { car2.super(); } } class PlaneWheel extends Car.Wheel { [color=red] PlaneWheel(Car car) { car.super(); }[/color] public static void main(String[] args) { Car2 car2=new Car2(); PlaneWheel2 pw=new PlaneWheel2(car2); } }
程序运行结果为:Wheel2
7.2)
即是形参所在(子)类的父类,而不是实参所在(子)类的父类。具体如下:
class Car { class Wheel { Wheel(){ System.out.println("Wheel1"); } } } class Car2 { class Wheel2 { Wheel2(){ System.out.println("Wheel2"); } } } class PlaneWheel2 extends Car2.Wheel2 { PlaneWheel2(Car2 car2) { car2.super(); } } class PlaneWheel extends Car.Wheel { [color=red] PlaneWheel(Car car) { car.super(); }[/color] static Car2 car2=new Car2();//必须声明为static,静态main()方法中才能引用。 public static void main(String[] args) { PlaneWheel2 pw=new PlaneWheel2(car2); } }
7.3)
注意:7.1)和7.2)中标红部分代码不能去掉。(貌似是必须的构造函数。)
8.1)内部类的应用1:内部类实现接口,同时隐藏接口的具体实现细节。
interface Animal { void eat(); void sleep(); } class Zoo { private class Tiger implements Animal { public void eat() { System.out.println("tiger eat"); } public void sleep() { System.out.println("tiger sleep"); } } Animal getAnimal() { return new Tiger(); } } class Test { public static void main(String[] args) { Zoo z=new Zoo(); Animal an=z.getAnimal(); an.eat(); an.sleep(); } }
8.2)内部类的应用2:解决多个接口或父类中有方法名重名的问题。
interface Machine { void run(); } class Person { void run() { System.out.println("run"); } } class Robot extends Person { private class MachineHeart implements Machine { public void run() { System.out.println("heart run"); } } Machine getMachine() { return new MachineHeart(); } } class Test { public static void main(String[] args) { Robot robot=new Robot(); Machine m=robot.getMachine(); m.run(); robot.run(); } }
8.3)内部类的应用3:解决类的多继承问题
class A { void fn1() { } } abstract class B { abstract void fn2(); } class C extends A { B getB() { return new B() { public void fn2() { } }; } } class Test { static void method1(A a) { a.fn1(); } static void method2(B b) { b.fn2(); } public static void main(String[] args) { C c=new C(); method1(c); method2(c.getB()); } }
摘自:孙鑫老师的java视频。
发表评论
-
文件上传
2017-02-05 09:47 406文件上传模块 -
@ModelAttribute注解的使用
2017-01-09 23:13 537https://my.oschina.net/u/176085 ... -
数组合并和判断数组包含某个元素
2017-01-09 23:10 536http://www.iteye.com/news/28296 ... -
项目创建流程
2017-01-09 23:06 401http://lion.newtouch.com/pages/ ... -
mysql 出现很多连接 sleep 问题
2017-01-09 23:00 707http://blog.csdn.net/lin_credib ... -
spring boot 学习
2016-11-28 17:05 380http://412887952-qq-com.iteye.c ... -
jxls excel上传数据
2016-11-22 15:27 551http://jxls.sourceforge.net/ref ... -
veloctiyengine gettemplate jsonobject.fromobject
2016-11-18 10:41 0/** 53. * test User 54. ... -
HDFS客户端的权限错误:Permission denied
2016-08-09 01:55 629http://www.linuxidc.com/Linux/2 ... -
java map中的key为object
2016-08-08 11:18 527http://zhidao.baidu.com/link?ur ... -
jdbc pool
2016-07-26 14:50 405[url]C:\Users\lwx328240\Desktop ... -
java 域是指什么
2016-07-15 15:36 530http://blog.csdn.net/iaiti/arti ... -
java jdbc/ojdbc 链接oracle的三种方式
2016-07-12 14:50 577http://blog.itpub.net/22664653/ ... -
java 编译器 解释器
2016-06-28 14:45 7130) javac 编译器 用于将java源代码文件编译成字节码 ... -
linux查看cpu、内存、版本信息
2016-06-24 21:44 541http://blog.chinaunix.net/uid-2 ... -
重定向控制台System.out.println输出到文件,再重定向回控制台
2016-06-24 20:18 509http://blog.csdn.net/jason_deng ... -
java 代码点 代码单元
2016-06-24 09:38 722http://blog.csdn.net/weizhaozhe ... -
java 日期
2016-06-24 09:39 348http://kingquake21.iteye.com/bl ... -
jdbc addBatch
2016-06-23 22:08 400http://www.360sdn.com/java/2014 ... -
java中的arrayList(动态数组)与静态数组
2016-06-21 20:26 947http://www.2cto.com/kf/201206/1 ...
相关推荐
"Java学习笔记——良葛格"是一份专为初学者设计的教程资料,由良葛格精心编写,旨在帮助读者掌握JDK5.0版本的Java基础知识。JDK(Java Development Kit)是Java开发的核心工具集,包含了编译器、调试器和运行环境等...
3. **异常处理**:JAVA提供了一种结构化的异常处理机制,学习笔记会解释何时及如何使用try-catch-finally语句块,以及不同类型的异常类。 4. **内存管理与垃圾回收**:JAVA的自动内存管理是通过垃圾回收机制实现的...
【狂神Java学习笔记——前端入门——HTML、CSS、JavaScript学习代码】是针对初学者的一份详实的学习资料,这份笔记记录了跟随B站知名up主“遇见狂神说”的java系列视频中关于前端开发的基础内容。笔记内容不仅与视频...
JSP复习笔记——第10章 连接数据库 之 JDBC相关 - 堕落天使 - JavaEye技术网站.mhtJSP复习笔记——第10章 连接数据库 之 JDBC相关 - 堕落天使 - JavaEye技术网站.mht
Thinking in Java 自学笔记——第一章 对象导论 本章节总结了面向对象程序设计(Object-oriented Programming, OOP)的基本概念和原则,以帮助读者更好地理解 Java 编程语言。以下是对标题、描述、标签和部分内容的...
### Thinking in Java 自学笔记——第二章 一切皆对象 #### 重要概念解析 ##### 2.1 用引用操纵对象 在Java中,一切都被视为对象,这意味着无论是字符串、数字还是其他数据类型都可以被视为对象来进行操作。当...
Java学习笔记——异常 在Java编程中,异常处理是一项至关重要的技能,它允许开发者优雅地处理程序运行时可能遇到的问题,防止程序意外终止,并提供有用的反馈信息。异常是程序执行过程中遇到的不正常情况,例如除以...
### Java学习笔记——内部类详解 #### 一、引言 Java中的内部类是一个非常有用但又容易让人感到困惑的概念。内部类本质上是在另一个类的内部定义的类,它可以访问外部类的所有成员变量和方法,甚至是私有成员。...
这份名为"超详细的Java复习知识点2019——个人笔记"的文档,旨在为初学者提供一个全面且深入理解Java基础知识的指南。笔记内容可能涵盖了以下几个关键领域: 1. **Java语法基础**:包括变量、数据类型、运算符、...
这份"java复习笔记"旨在帮助学习者系统地回顾和深入理解Java的关键概念和技术,以便于提升编程技能和应对各种开发挑战。 一、基础语法 Java的基础语法包括变量、数据类型、运算符、流程控制语句等。例如,变量是...
这份"个人学习的java笔记——思维导图"是作者学习Java过程中的总结,通过思维导图的形式,将复杂的概念和知识结构化,便于理解和记忆。下面,我们将深入探讨其中涉及的一些关键知识点。 1. **基础语法**:Java的...
Java JDK 6学习笔记是为Java初学者量身定制的一份宝贵资料,它涵盖了Java编程的基础概念、语法以及核心特性。这份PPT简体版旨在帮助读者快速掌握Java开发的基本技能,逐步成为一名合格的Java程序员。 Java JDK...
GTK笔记——按钮 GTK笔记——按钮是对GTK开发时的按钮进行了详细介绍,是进行跨平台图形开发不可获缺的部分。GTK笔记——按钮是GTK开发中最基本也最常用的控件之一,它允许用户点击它们,以完成某些操作,如保存...
Python学习笔记——对象和类
这份"Java JDK 6学习笔记——ppt简体版"提供了关于这个关键版本的详细教程,适合初学者和有一定经验的开发者来深入理解Java编程。 首先,我们要了解Java JDK是什么。Java Development Kit,简称JDK,是Oracle公司...
通过上述内容的介绍,可以看出FPGA自学笔记——设计与验证公开版不仅涵盖了FPGA的基本原理和技术细节,还深入探讨了FPGA技术的发展趋势及其在实际应用中的重要性。这对于初学者来说是非常宝贵的学习资源。
这份“Java JDK 6学习笔记——ppt简体版”涵盖了Java语言的核心概念、语法特性以及JDK 6的新功能,旨在帮助初学者和有经验的开发者深入理解并掌握这一版本的Java开发环境。 首先,Java JDK 6的安装与配置是学习的...
本篇复习笔记主要关注的是JSP构架以及MVC(Model-View-Controller)设计模式的应用。 MVC设计模式是软件工程中的一种架构模式,它将应用程序分为三个核心部分:模型(Model)、视图(View)和控制器(Controller)...