1.接口:

1)接口不是类,不能使用new运算符实例化一个接口,而是对类的一组需求描述,这些类要遵循接口描述的统一格式进行定义。个人感觉像C语言中的函数在头文件中的预先声明,但是包含了一些类的特点,比如继承之类。

2)接口中的所有方法自动属于public,不必提供关键字,但是在实现接口时必须提供pulic。

3)让类实现一个接口:(1)将类声明为实现给定的接口(implements)  (2)对接口中的所有方法进行定义;

4)不能构造接口的对象,但是可以声明接口的变量,而接口的变量必须引用实现接口的类的对象。

5)接口中可以包含常量,接口中的域会被自动设为public static final。

6)相比于抽象类,接口可以被多重继承。

2.内部类:

1)内部类方法可以访问该类定义所在的作用域中的数据,包括private;

2)内部类可以对同一个包中的其他类隐藏起来;

3)当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较方便;

4)内部类的对象总有一个隐式引用,指向创建它的外部类对象(在内部类定义中是不可见的);而外围类的引用则为OuterClass.this;在外围类的作用域之外则可以OuterClass.InnerClass对内部部进行引用。

5)局部内部类:在一个方法中进行定义的内部类(不能使用修饰符,作用域限定于声明局部类的块中),可以对外部完全隐藏,只有声明块中的方法可以访问。

6)匿名内部类:在局部内部类中,如果只创建这个类的一个对象,可以不必命名;而由于没有类名,匿名类不能有构造器,,而是将构造器参数传递给超类构造器。(如果构造参数的闭圆括号跟一个开花括号,则正在定义的就是匿名内部类。

7)如果不需要内部类引用外围类对象,可以将内部声明为static,以便取消产生的引用。(只有内部类可以声明为static)

Java随笔三的更多相关文章

  1. Java EE : 三、图解Session(会话)

    目录 Java EE : 一.图解Http协议 Java EE : 二.图解 Cookie(小甜饼) Java EE : 三.图解Session(会话) 概述 一.Session由来 二.Sessio ...

  2. JAVA第三周作业(从键盘输入若干数求和)

    JAVA第三周作业(从键盘输入若干数求和) 在新的一周,我学习了JAVA的IO编程.下面的代码实现了从键盘输入若干数求和的目标.import java.util.Scanner; public cla ...

  3. 编程语言性能游戏排行榜,C/C++第一ATS第二JAVA第三

    编程语言性能游戏排行榜,C/C++第一ATS第二JAVA第三 编程语言性能游戏排行榜,C/C++第一ATS第二JAVA第三

  4. Java的三种代理模式

    Java的三种代理模式 1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩 ...

  5. Java的三种代理模式简述

    本文着重讲述三种代理模式在java代码中如何写出,为保证文章的针对性,暂且不讨论底层实现原理,具体的原理将在下一篇博文中讲述. 代理模式是什么 代理模式是一种设计模式,简单说即是在不改变源码的情况下, ...

  6. Java进阶(三十九)Java集合类的排序,查找,替换操作

    Java进阶(三十九)Java集合类的排序,查找,替换操作 前言 在Java方向校招过程中,经常会遇到将输入转换为数组的情况,而我们通常使用ArrayList来表示动态数组.获取到ArrayList对 ...

  7. Java进阶(三十八)快速排序

    Java进阶(三十八)快速排序 前言 有没有既不浪费空间又可以快一点的排序算法呢?那就是"快速排序"啦!光听这个名字是不是就觉得很高端呢. 假设我们现在对"6 1 2 7 ...

  8. Java进阶(三十七)java 自动装箱与拆箱

    Java进阶(三十七)java 自动装箱与拆箱 前言 这个是jdk1.5以后才引入的新的内容.java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的(在这种情况下包装称为装箱,解包装称为 ...

  9. Java进阶(三十六)深入理解Java的接口和抽象类

    Java进阶(三十六)深入理解Java的接口和抽象类 前言 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太 ...

随机推荐

  1. linux head、tail、sed、cut、grep、find

    head用法: head 参数 文件名 -cn:显示前n个字节    -n:显示前n行 例子:head -c20 1.txt 显示1.txt文件中前20个字符 ls |  head -20:显示前20 ...

  2. mysql 批量插入数据存储过程

    create procedure pFastCreateNums (cnt int unsigned) begin declare s int unsigned default 1; truncate ...

  3. μC/OS-Ⅲ系统中的任务种类及基本状态

    在μC/OS-Ⅲ系统中,任务自身一共有五种状态. 1.休眠态 调用函数OSTaskCreate()创建任务后,任务就可以接受μC/OS-Ⅲ的管理.处于休眠态的任务代码实际上已经写入代码空间中了,但是μ ...

  4. 读取.properties配置文件

    方法1 public  class SSOUtils { protected static String URL_LOGIN = "/uas/service/api/login/info&q ...

  5. BOOL和bool的区别

    一. 1.类型不同 BOOL为int型 bool为布尔型 2.长度不同 bool只有一个字节 BOOL长度视实际环境来定,一般可认为是4个字节 3.取值不同 bool取值false和true,是0和1 ...

  6. WPF学习笔记1---初接触

    刚刚接触WPF,微软的一套东西.WPF最大的特点就是UI设计与代码逻辑的完全剥离.这样美工和程序员的分工就变得非常清楚.因为界面和程序的耦合度很低,也增加的代码的灵活性和可重用性. 微软为WPF的UI ...

  7. Parse xml/json[xpath/jpath]

    import groovy.util.XmlSlurper import groovy.util.XmlParser import com.eviware.soapui.support.GroovyU ...

  8. Matlab_Graphics(1)_2D

    1.Add title ,axis Lables, and Legend to Graph: x=linspace(-*pi,2pi,); y1=sin(x); y2=cos(x); figure p ...

  9. TypeScript Handbook 1——基本类型(翻译)

    原文出处: http://www.typescriptlang.org/Handbook 基于对web开发的需要和对安神的崇拜,打算学习一下typescript. 能力有限,基本属于在自己认识的基础上 ...

  10. python3下载远程代码并执行

    第一步: 先在gist之类的网站上贴上代码,目的不是高亮,而可以raw的形式获取代码,这样可以省掉处理html的时间,我这里用的是pasteraw: 远程上的代码:http://cdn.pastera ...