`

《Java核心技术(第八版)》笔记之第6章接口与内部类

阅读更多

一、接口

1.接口主要用来描述类具有什么功能,而并不给出每个功能的具体实现. (P204)

 

2.接口中的方法自动属于public,因为声明时可以不使用关键字public. 但是在实现接口时,必 须把方法声明为public,否则,编译器将视为类的默认访问属性(包可见性)(P205)

 

3.接口可以定义常量[color=red][b](自动设置为public static final)[/b][/color],但是绝不能含有实例域,也不能实现方法。-----可以将接口视为没有实例域的抽象类。

 

4.类与子类不符合“反对称”的规则时(如调用equals等方法),有两种解决方法:

(1).进行类的检查,如果类不一样,直接抛异常.

例6-1 [code="java"]if(getClass()!=other.getClass()) throw new ClassCastException();[/code]

(2).如果存在通用的算法,对不同的子类都适合,则在超类中提供该方法,并声明为final.

 

5.标记接口

例如,Cloneable就是标记接口(tagging interface,或者marker interface)。标记接口没有方法,因为其目的不是为了实现某个方法,惟一的目的是可以用instanceof进行类型检查。

 

二、内部类

1.只有内部类可以是私有类,常规类只可以具有包可见性,或公有可见性。

 

2.内部类可以访问外围的私有数据;

 

3. 局部内部类:

(1). 定义在方法中的内部类。对外完全隐藏,方法之外的外围类也不知道。

(2). 只可以引用定义为final的局部变量 。

 

4. final变量可用于局部变量、实例变量和静态变量。意义都是:在创建这个变量后,只能够赋值一次。不过,在定义final变量的时候,不必进行初始化。 (P228)

可以将声明一个长度为1的数据变量,这样,它不能引用另一个数组,但是数据中的数据可以变。

 

5. 匿名内部类

(1)只需创建一个对象;

(2)类比较短;

(3)没有构造器。

 

6.静态内部类 (P231)

(1). 不需要访问外围类;

(2). 只有内部类可以是static

(3). 声明在接口中的内部类自动成为static和public。

 

三、代理

1.代理可以在运行时创建一个实现了一组给定接口的新类。

2.无论何时调用代理对象的方法,调用处理器的invoke方法都会被调用,并向其传递Method对象和原始的调用参数。调用处理器必须给出处理调用的方法。

Object invoke(Object proxy, Method method, Object[] args)

 

 

分享到:
评论

相关推荐

    java核心技术-整理过的笔记

    ### Java核心技术精炼知识点 #### 一、Java平台概述与分类 Java技术主要分为三个标准: 1. **Java SE(Standard Edition)**:标准版,适用于桌面应用软件。 2. **Java EE(Enterprise Edition)**:企业版,针对...

    JAVA经典教材笔记

    #### 第六章:面向对象(高级) - **继承的进一步研究** - 继承的优势:提高代码复用性。 - 继承的限制:避免过度使用。 - **范例:继承的应用** - 示例分析:动物类与狗类之间的继承关系。 - 实现多态性的方法...

    java经典教材笔记

    第六章涵盖了面向对象编程的高级特性,包括继承、接口、多态以及抽象类。继承允许一个类继承另一个类的属性和方法,接口则定义了一组方法规范,多态让不同类的对象能够响应相同的消息,而抽象类和接口则用于定义抽象...

    java私塾学习笔记整理

    #### 第六章:常见类的使用 **一、Object类** Object类是所有Java类的基类,包含一些基本方法如`equals()`、`toString()`、`hashCode()`等。 **二、String类** String类表示字符串,它是不可变的。提供了多种...

    java学习笔记.pdf

    #### 第八章:Java Applet基础 - Java Applet是一种在Web页面中嵌入的Java小程序。 #### 第九章:文本框和文本区 - **9.1 文本框** 用于输入单行文本。 - **9.2 文本框上的ActionEvent事件** 当用户按下...

    Java课堂笔记txt格式

    本套“Java课堂笔记”旨在为学习者提供一个从入门到精通的全面学习路径,通过简洁明了的方式,让学习者在短时间内掌握Java的核心概念和技术。 一、Java基础 Java的基础包括语法特性、数据类型、变量、运算符和控制...

    java lecture note(Java学习笔记)

    Java学习笔记:全面掌握Java编程的核心知识与技能 在当今的软件开发领域,Java作为一种流行的、功能强大的面向对象编程语言,被广泛应用于各种场景,包括Web应用、移动应用、企业级应用等。本篇Java学习笔记旨在为...

    Java_se基础毕向东老师全程笔记

    ### 第六章:常用类API - **字符串处理**:`String`类和`StringBuilder`类。 - **日期时间操作**:`Date`类、`Calendar`类以及`java.time`包中的类。 ### 第七章:集合框架(容器) - **集合接口**:`Collection`、...

    java实战经典学习笔记

    ### Java实战经典学习笔记知识点概览 #### 一、Java概述及开发环境搭建 - **Java概述** - Java是一种广泛使用的高级编程语言,由Sun Microsystems于1995年发布。 - Java的设计目标是“一次编写,到处运行”,这...

    java实训笔记

    Java 实训笔记主要涵盖Java语言的基础知识,包括JDK的安装、环境变量配置以及核心编程概念。以下是对这些知识点的详细说明: 1. **JDK安装与环境变量配置**: - JDK(Java Development Kit)是Java开发所需的核心...

    Java基础知识笔记详细版-菜鸟翻阅必备

    ### Java基础知识笔记详细版-菜鸟翻阅必备 #### 一、Java概述 1. **Java语言发展史**: - Java由Sun Microsystems公司于1995年推出。 - 最初由James Gosling领导的设计团队开发,目标是用于家用电器的编程。 - ...

    李兴华java笔记

    ### Java核心知识精讲 #### 一、Java简介 Java是一种广泛使用的高级编程语言...以上就是从“李兴华java笔记”中提取的核心知识点,涵盖了Java的基础语法、面向对象编程的基本概念和技术点。希望对学习Java有所帮助。

    java第一阶段(JavaSE)笔记整理(Typora打开)

    以上是Java第一阶段(Java SE)学习中的核心知识点,熟练掌握这些内容是成为一名合格的Java程序员的基础。使用Eclipse或IntelliJ IDEA作为集成开发环境,可以帮助我们更高效地编写和调试代码。在学习过程中,实践是...

    毕向东Java SE视频教程整理笔记

    #### 第六章:常用类API - **常用类概述**:这部分涵盖了Java标准库中广泛使用的类,如String、Integer等。了解这些类的使用对于高效编程至关重要。 #### 第七章:集合框架(容器)+其他类对象使用 - **集合框架*...

    java 学习笔记大全

    4. 类与对象:Java是面向对象的语言,类是对象的模板,对象是类的实例。 5. 封装:隐藏对象的属性和实现细节,提供公共接口来与外界交互。 6. 继承:一个类可以继承另一个类的特性,实现代码复用。 7. 多态:同一种...

    Java入门学习笔记

    - 封装是面向对象编程的核心特性之一,通过隐藏对象的实现细节,仅暴露必要的接口给外部使用。 **7.2 继承** - **7.2.1 Java继承特点** - 单继承:Java不支持多继承,即一个类只能继承自一个父类。 - 多层继承:...

    传智播客Java SE基础毕向东老师全程笔记

    #### 第六章:常用类API - **字符串类:** `String`和`StringBuilder`用于处理字符串。 - **包装类:** 如`Integer`、`Double`等,提供基本数据类型对应的对象封装。 - **日期时间类:** 如`Date`、`Calendar`等,...

Global site tag (gtag.js) - Google Analytics