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. H5一行显示两个正方形

    1)有时候一些图片会是正方形或者长方形,对于这样的图片一般都是居中显示到正方体内,代码如下:  .exhibition_list img{width:100%;position: relative;t ...

  2. UIKit框架

    在今后的应用程序构建中,会陆续使用各式各样的控件,因此UIKit框架的引入是必不可少的! 一.简介 UIKitk框架提供一系列的Class(类)来建立和管理iPhone OS应用程序的用户界面接口.应 ...

  3. spring与mybatis三种整合方法

    spring与mybatis三种整合方法 本文主要介绍Spring与Mybatis三种常用整合方法,需要的整合架包是mybatis-spring.jar,可通过链接 http://code.googl ...

  4. JavaScript 面向对象(三) —— 高级篇

    JavaScript 面向对象(一) —— 基础篇 JavaScript 面向对象(二) —— 案例篇 一.json方式的面向对象 首先要知道,js中出现的东西都能够放到json中.关于json数据格 ...

  5. 全端开发必备!10个最好的 Node.js MVC 框架

      Node.js 是最流行的 JavaScript 服务端平台,它允许建立可扩展的 Web 应用程序.Node.js 包含不同类型的框架,如 MVC 框架.全栈框架.REST API  以及大量的服 ...

  6. ASP.NET MVC4 请不要将你的Control命名为APIController

    今天小猪就遇到了这个坑,虽然小猪知道MVC4已经默认提供了APIController类,这样如果某Control继承自这个APIController的话会使用其自带的REST服务等等,但是之前小猪想我 ...

  7. Android ORM应用开发框架KJFrameForAndroid使用详解

    本文将为大家介绍一款Android ORM应用开发框架KJFrameForAndroid,很多时候我们也叫它KJLibrary. KJFrameForAndroid简介 KJFrameForAndro ...

  8. Windows Server 2012 中80端口被PID为4的系统进程占用解决方法

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP 把"start" 的值改成4.

  9. 读取.properties配置文件

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

  10. string类实现(C++)

    class CMyString { friend std::ostream& operator<<( std::ostream& os, const CMyString&a ...