Java核心技术--接口与内部类】的更多相关文章

接口implement 继承接口,即履行"义务". 接口中所有的方法自动属于public,在接口声明中,不必提供关键字public 接口中决不能含有实例域,也不能在接口中实现方法 为了让类实现一个接口,通常需要下面两个步骤: 将类声明为实现给定的接口 对接口中的所有方法进行定义 接口与抽象类 为什么要引入接口,抽象类不是已经满足接口的功能了吗? 因为每个类只能扩展一个类,Java不支持多类继承,主要原因是多类继承会让语言本身变得非常复杂(如同C++),效率也会降低(如同Eiffel).…
本章将主要介绍: 接口技术:主要用来描述类具有什么功能,而并不给出每个功能的具体实现.一个类可以实现一个或多个接口. lambda表达式:这是一种表示可以在将来的某个时间点执行的代码块的简洁方法. 内部类机制:内部类定义在另一个类的内部,其中的方法可以访问包含它们的外部类的域. 代理:一种实现任意接口的对象. 1 接口 1.1 接口的概念 概念:接口不是类,而是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义. “如果类遵从某个特定的接口,那么就履行这项服务”: Arrays类中的so…
一.    选择题 1. Person类和Test类的代码如下所示,则代码中的错误语句是(  C  ).(选择一项)   public class Person { public String name; public Person(String name) { this.name = name; } } public class Test { public static void main(String[] args) { final Person person = new Person("欧…
接口:用来描述类具有什么功能,而并不给出每个功能的具体实现. 一个类可以实现一个或多个接口. 克隆(深拷贝):创建一个新对象,且新的对象的状态与原始对象的状态相同.当对克隆的新对象进行修改时,不会影响原始对象的状态. 内部类:内部类定义在另外一个类的内部,其中的方法可以访问包含它们的外部类的域. 接口:接口不是类,不能被实例化,而是对类的一组需求的描述,这些类要遵从接口描述的统一格式进行定义,也就是说要实现接口中的方法. 接口中的所有方法自动地属于public.接口中不能含有实例域,也不能在接口…
书本上的例子 改编后的. package test2; class A{ interface B{void f();} public class BImp implements B{public void f(){}} private class BImp2 implements B{public void f(){}} public interface C{void f();} class CImp implements C{public void f(){}} private class C…
第6章 接口与内部类 本章内容: * 接口 * 对象克隆 * 接口与回调 * 内部类 * 代理 接口技术主要用来描述类具有什么功能,而并不给出每个功能的具体实现.一个类可以实现(implement)一个或多个功能,并在需要接口的地方,随时使用实现了相应接口的对象. 对象的克隆是指创建一个新对象,且新对象的状态和原始对象的状态相同.当对克隆的新对象进行修改时,不会影响原始对象的状态. 内部类定义在另外一个类的内部,其中的方法可以访问包含它们的外部类的域.内部类技术主要用于设计具有相互协作关系的类集…
接口与内部类 目录 接口与内部类 1. Lambda表达式 1. 关于懒计算 2. Predicate接口 3. 关于方法引用 4. 关于构造器引用 5. 关于变量的作用域 2. 内部类 1. 局部内部类 2. 匿名内部类 本文主要整理了一些作者看JAVA核心技术卷第六章遇到的难点以及其思考, 欢迎小伙伴及时指出错误! 1. Lambda表达式 1. 关于懒计算 在JAVA8中, 提供了 Supplier这个接口实现懒计算 原理是这样的, 主要依据是以下三个原理 在JAVA8的新特性中, 只要一…
1.接口的定义: In the Java programming language, an interface is not a class but          staff[0] =          staff[1] =          staff[2] =                   Arrays.sort(staff);                               System.out.println("name = " + e.getName()…
接口域内部类 接口 描述类具有什么功能,不给出具体实现. 内部类 用于设计协作关系的类集合 代理 实现任意接口的对象. 6.1 接口 接口声明 public interface Comparable { int compareTo(Object other); //接口声明中自动属于public 所以不需要public } 接口声明不能提供的功能 不能含有实例域 不能在接口中实现方法 注意:提供实例域和方法实现的任务应该由接口实现的那个类完成 接口实现 需要完成两点 将类声明为实现给定的接口 使…
1. 为什么使用接口 Java中的接口是一组对需求的描述.接口通过声明接口方法来对外宣布:“要想具有XX功能,就得按我说的做(即实现接口方法).” 而接口的实现类通过实现相应接口的方法来宣布:“我已经按你说的做了,请赐予我XX功能吧!” 例如,以下是Comparable<T>接口的定义: public interface Comparable<T> { int compareTo(T o); } Comparable<T>接口中定义了一个compareTo方法,这个方法…
抽象类的概念: 1.Java中可以定义没有方法体的方法,还方法的具体实现由子类完成,该方法称为抽象方法,包含抽象方法的类就是抽象类: 2.如,shape类计算周长和面积的方法无法确定,那么就可以将这样的方法声明为抽象的,以便在具体的子类中实现 抽象类的特征: 抽象方法的声明 修饰符abstract 返回值类型 方法名([参数列表]): 注意:因为抽象方法无法确定具体执行的功能,所以抽象方法没有方法体,需要在小括号后加上分号 抽象类的声明 语法:修饰符 abstract class 类名 exte…
1. 为什么要使用内部类     内部类就是定义在一个类内部的类,那么为什么要使用内部类呢?主要原因有以下几点:第一,内部类中定义的方法能访问到它所在外部类的私有属性及方法:第二,外部类无法实现对同一包中的其他类隐藏,而内部类可以做到这一点:第三,匿名内部类在我们只需使用该类的实例依次时可以有效减少我们的代码量.关于以上三点,我们在下文中会举出具体例子进行进一步的说明.   2. 如何使用内部类 (1)使用内部类访问外围类私有变量     在内部类中,我们能够访问到它所在外部类中的私有实例变量及…
注意注意!! ! 前排提示!!.本篇文章过长,最好收藏下来慢慢看.假设你之前对内部类不是非常熟悉,一次性看完,大概你会懵逼. . . 1. 内部类概述 一个类的定义放在还有一个类的内部,这个类就叫做内部类.内部类是一种非常实用的特性.由于它同意你把一些逻辑相关的类组织在一起. 内部类大体上能够分为四种: 成员内部类,静态内部类,局部内部类,匿名内部类 我们先来具体的看一下这四种内部类. 2. 成员内部类 成员的内部类,就是最基础的内部类.没有那些花里胡哨的修饰: //外部类 public cla…
<Java核心技术卷一>是唯一可以和<Java编程思想>媲美的一本 Java 入门书.单从技术的角度来看,前者更好一些.但上升到思想层面嘛,自然后者更好,两者的偏重点不同. 思想不会变,所以<Java编程思想>还停留在第 4 版(2007 年):而技术是要更新迭代的,所以<Java核心技术卷一>来到了第十版(2016 年). 我们来看一下<Java核心技术卷一>第十版的大纲. 前九章:包括 "Java 程序设计概述".&quo…
一线互联网公司工作了几年,我作为求职者参加了不少面试,也作为面试官面试了很多同学,整理这份面试指南,一方面是帮助大家更好的准备面试,有的放矢,另一方面也是对自己知识框架做一个体系化的梳理. 这篇文章梳理了Java核心技术常见面试题,整理了120道题目,包括Java基础.集合框架.并发编程.NIO.反射等部分的内容.JVM和垃圾回收部分的内容比较多,会在下一篇博客中单独写. 除了Java核心技术题目,还会梳理虚拟机,Spring,Dubbo,Spring Cloud,分布式系统,数据库模块的面试题…
Tomxin7 如果你有想看书的计划,但是还在纠结哪些书值得看,可以简单看看"观赏指南"系列,本文会简单列出书中内容,给还没有买书的朋友提供一个参考. 前言 秋招过去很久了,虽然在学校的时候有恶补java基础,但是都是为了面试而准备的,有些技术并没有进行全面的了解,再加上java现在疯狂的更新版本,很多新东西没有了解过,所以就打算再过一遍.java的书籍很多,也不想重复的看,所以就买了两本写的比较系统的<java核心技术卷I II>,本篇文章主要是想分享一下卷I,如果你正打…
这是一篇备忘性质的读书笔记,仅记录个人觉得有用的知识点 本文作为一个目录索引,部分章节跳过 吐槽:此书中文翻译有不少地方不太通顺,这种情况我要把英文版对应的部分也读一遍才能明白(说实话,英文里的从句表达能力确实比中文清晰不少,不过从句多了之后也不太好理解) 虽然翻译这么厚一本书确实比较辛苦,很多英文长句确实不好翻译,翻译得不太通顺就算了,但是有很多地方翻译出来和原书的意思不一样就过分(甚至是沿袭的错误,第9版的中文版里错得一样,很怀疑每版有没有重新校对) P.S.这也是很多引进的大部头技术书籍的…
Java的四种内部类包括如下: 成员内部类 静态内部类 局部内部类 匿名内部类 成员内部类: 定义在另一个类(外部类)的内部,而且与成员方法和属性平级叫成员内部类,......相当于外部类的非静态方法,如果被static修饰,就变成静态内部类了. 注意事项: 成员内部类中不能存在static关键字,即,不能声明静态属性.静态方法.静态代码块等.[非静态内部类也可以定义静态成员但需要同时有final关键词修饰,静态方法鉴于无法用final修饰,仍必须是在静态内部类 或者非内部类中定义.] 创建成员…
1. Why ——引入泛型机制的原因 假如我们想要实现一个String数组,并且要求它可以动态改变大小,这时我们都会想到用ArrayList来聚合String对象.然而,过了一阵,我们想要实现一个大小可以改变的Date对象数组,这时我们当然希望能够重用之前写过的那个针对String对象的ArrayList实现. 在Java 5之前,ArrayList的实现大致如下: public class ArrayList { public Object get(int i) { ... } public…
1. 概述     Java集合框架由Java类库的一系列接口.抽象类以及具体实现类组成.我们这里所说的集合就是把一组对象组织到一起,然后再根据不同的需求操纵这些数据.集合类型就是容纳这些对象的一个容器.也就是说,最基本的集合特性就是把一组对象放一起集中管理.根据集合中是否允许有重复的对象.对象组织在一起是否按某种顺序等标准来划分的话,集合类型又可以细分为许多种不同的子类型. Java集合框架为我们提供了一组基本机制以及这些机制的参考实现,其中基本的集合接口是Collection接口,其他相关的…
本篇博文会从代理的概念出发,介绍Java中动态代理技术的使用,并进一步探索它的实现原理.由于个人水平有限,叙述中难免出现不清晰或是不准确的地方,希望大家可以指正,谢谢大家:) 一.概述 1. 什么是代理 我们大家都知道微商代理,简单地说就是代替厂家卖商品,厂家“委托”代理为其销售商品.关于微商代理,首先我们从他们那里买东西时通常不知道背后的厂家究竟是谁,也就是说,“委托者”对我们来说是不可见的:其次,微商代理主要以朋友圈的人为目标客户,这就相当于为厂家做了一次对客户群体的“过滤”.我们把微商代理…
Unit06 - 抽象类.接口和内部类(下) . 面向对象汇总 1.多态:  1)意义:    1.1)同一类型的引用指向不同的对象时,有不同的实现        行为的多态:cut().run().study()    1.2)同一个对象被造型为不同的类型时,有不同的功能        对象的多态:我.你.水  2)向上造型:    2.1)父类型的引用指向子类的对象    2.2)能造型成为的类型: 父类.所实现的接口    2.3)能点出来什么,看引用的类型  3)强制类型转换,成功的条件…
学习android必备的java基础知识--四大内部类 今天学习android课程,因为我的主专业是JAVA,但是兴趣班却有这其他专业的同学,学习android 需要具备一些java的基础知识,因此就总结了一下关于四大内部类的知识. 备注: java语言中允许类中再次定义类,这种在其它类内部定义的类叫内部类,内部类分为四种:常规内部类(成员内部类),局部内部类(方法内部类),匿名内部类,静态嵌套内部类 一.常规内部类 其实常规的内部类就是第一种(成员内部类) 当然 成员内部类由于高内聚,不对外开…
Java 核心技术之一程序设计概述 一.   Java语言的特点 简单行 :取经于C++,排除了C++不常用的指针.结构等,增加垃圾回收. 面向对象:与C++不同是单继承,但是可以继承多接口.完全面向对象的语言: 网络技能:Socket,FTP,Http,URL编程简单: 健壮性:避免指针错误使用: 安全性:构建防病毒防篡改系统: 体系结构中立:字节码: 可移植性: 解释性:可以解释任何移植了的字节码: 高性能: 多线程 动态性: 二.   Internet 和 Java Applet 在网页中…
InputStream和OutputStream构成了输入/输出类层次结构的基础.用于按字节进行读写.而与之处在同一等级的Reader/Writer同样作为抽象类定义了用于对字符进行读取的类层次结构,是基于两个字节的Unicode码元的读取. inputStream的抽象方法abstract int read(),每次读入一个字节并返回一个int值,在遇到文件尾的时候返回-1.所以可以用其子类FileInputStream进行文件字符读取: FileInputStream f = new Fil…
 Java面向对象 Object类    内部类 知识概要:                 一:Object类                 二:内部类 匿名内部类的写法 1.Object Object:是所有对象的直接后者间接父类,传说中的上帝.        该类中定义的肯定是所有对象都具备的功能 Object类中已经提供了对对象是否相同的比较方法. 如果自定义类中也有比较相同的功能,没有必要重新定义.        只要沿袭父类中的功能,建立自己特有比较内容即可.这就是覆盖. 代码…
第1章 Java程序设计概述1.1 Java程序设计平台 具有令人赏心悦目的语法和易于理解的语言,与其他许多优秀语言一样,Java满足这些要求. 可移植性 垃圾收集 提供大型的库  如果想要有奇特的绘图功能,网络连接功能和数据库存取功能无需自己动手编写代码 功能齐全的出色语言 高质量的执行环境,提供庞大的库.集多种优势于一身 注:  白皮书:www.oracle.com/technetwork/java/langenv-140151.html  11个关键术语的论述:http://horstma…
继上一篇Java核心技术第五章——1.类.超类.子类(1) 6.重载解析 假如调用ClassName.Method(args) 1.编译器列出类ClassName所有名为Method的方法. 2.编译器将查看调用方法提供的参数类型(args). 3.根据参数类型匹配所有名为Method的方法. 4.如果编译器没有找到与参数类型匹配的方法,或者发现经过类型转换后有多个方法与之匹配,就会报告一个错误. 7.阻止继承:final类和方法. 1.final类:当你不希望别人利用某个类定义子类.那么则使用…
第5章 继承 本章内容: * 类.超类和子类 * Object:所有类的超类 * 泛型数组列表 * 对象包装器和自动装箱 * 参数数量可变的方法 * 枚举类 * 反射 * 继承设计的技巧 利用继承,人们可以基于已存在的类构造一个新类.继承已存在的类就是复用(继承)这些类的方法和域.在此基础上,还可以添加一些新的方法和域,以满足新的需求. 反射是指在程序运行期间发现更多的类及其属性的能力. 5.1 类.超类和子类 “is-a”关系是继承的一个明显特征. 在Java中,所有的继承都是公有继承,而没有…
1. 谈谈你对java平台的理解 首先是java最显著的两个特性,一次写入处处运行:还有垃圾收集器gc,gc能够对java内存进行管理回收,程序员不需要关心内存的分配和回收问题 然后谈谈jre和jdk的区别,jre包含了jvm和java类库:jdk除了jvm和java类库,还包含了一些java工具集 常见的垃圾收集器有: Serial GC:串行收集,垃圾回收时会阻塞工作线程 Parallel GC:并行收集,多线程收集,停顿时间短,吞吐量高 CMS:使用标记清除算法,多线程进行垃圾收集 G1:…