JAVA编程思想学习笔记4-chap10-12-斗之气4段
1.内部类:Iterator
2..this生成对外部类的引用
3..new:通过外部类对象创建内部类对象
package com.chengjie;
public class TestInnerClass {
class Inner {
String str() {
return "Inner!";
}
}
public Inner getInner() {
return new Inner();
}
public static void main(String[] args) {
TestInnerClass tic = new TestInnerClass();
TestInnerClass.Inner inner = tic.getInner();
System.out.println(inner.str());
inner = tic.new Inner();
System.out.println(inner.str());
}
}
4.通过内部类返回其接口类型时,可以实现内部的完全隐藏
interface Base { }
public class TestInnerClass {
class Inner implements Base{
String str() {
return "Inner!";
}
}
public Base getInner() {
return new Inner();
}
}
5.通过匿名内部类实现工厂模式
package com.chengjie;
interface Service {
void method1();
void method2();
}
interface ServiceFactory {
Service getService();
}
class ServiceImpl1 implements Service {
private ServiceImpl1() {}
@Override
public void method1() {
System.out.println("implment1:method1()!");
}
@Override
public void method2() {
System.out.println("implment1:method2()!");
}
public static ServiceFactory sf = new ServiceFactory() {
@Override
public Service getService() {
return new ServiceImpl1();
}
};
}
public class TestFactory {
public static void consume(ServiceFactory sf) {
Service s = sf.getService();
s.method1();
s.method2();
}
public static void main(String[] args) {
consume(ServiceImpl1.sf);
}
}
6.内部类特点:每个内部类可以独立继承一个接口的实现,无论外围类继承与否--有效补充了多重继承
7.内部类不是is-a,而是独立的实体
8.嵌套类:静态内部类,切断内外部对象的关系,生成内部类对象不再依赖外部类对象
9.ListIterator应用于List访问,可以双向与定向
10.容器
- Collection:存1 Map:存二
- List:顺序 ArrayList:数组实现 LinkedList:链表实现
- HashMap:快查 TreeMap:排序 LinkedHashMap:插入顺序+快查
- Comparable接口:需要对容器类存的对象排序时,需要此对象实现Comparable接口
- 涉及数据结构:数组、链表、红黑树、哈希表

11.异常占位:声明异常却不进行实际抛出异常
12.Throwable:Error和Exception
13.RuntimeException不需要异常声明以及手动捕获
14.子类方法只能抛出基类方法中说明的异常
JAVA编程思想学习笔记4-chap10-12-斗之气4段的更多相关文章
- [Java编程思想-学习笔记]第3章 操作符
3.1 更简单的打印语句 学习编程语言的通许遇到的第一个程序无非打印"Hello, world"了,然而在Java中要写成 System.out.println("He ...
- Java编程思想 学习笔记12
十二.通过异常处理错误 Java的基本理念是“结构不佳的代码不能运行”. Java中的异常处理的目的在于通过使用少于目前数量的代码来简化大型.可靠的程序的生成,并且通过这种方式可以使你更加自信:你的 ...
- Java编程思想 学习笔记1
一.对象导论 1.抽象过程 Alan Kay曾经总结了第一个成功的面向对象语言.同时也是Java所基于的语言之一的Smalltalk的五个基本特性,这些特性表现了纯粹的面向对象程序设计方式 1)万物皆 ...
- [Java编程思想-学习笔记]第1章 对象导论
1.1 抽象过程 Java是一门面向对象的语言,它的一个优点在于只针对待解问题抽象,而不用为具体的计算机结构而烦心,这使得Java有完美的移植性,也即Java的口号"Write Once, ...
- Java编程思想 学习笔记11
十一.持有对象 通常,程序总是根据运行时才知道的某些条件去创建新对象.在此之前,不会知道所需对象的数量,甚至不知道确切的类型. Java实用库还提供了一套相当完整的容器类来解决这个问题,其中基本的类 ...
- Java编程思想 学习笔记10
十.内部类 可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类是一种非常有用的特性,因为它允许你把一些逻辑相关的类组织在一起,并控制位于内部的类的可视性.然而必须要了解,内部类和组合是 ...
- Java编程思想学习笔记——类型信息
前言 运行时类型信息(RTTI:Runtime Type Information)使得我们可以在程序运行时发现和使用类型信息. Java在运行时识别对象和类的信息的方式: (1)一种是RTTI,它假定 ...
- Java编程思想 学习笔记7
七.复用类 1.组合语法 在新的类中产生现有类的对象.由于新的类是由现有类的对象所组成,所以这种方法叫做组合. 类中域为基本类型时能够自动被初始化为零.对象引用被初始化为null. 编译器不是简单地为 ...
- Java编程思想 学习笔记5
五.初始化与清理 1.用构造器确保初始化 在Java中,通过提供构造器,类的设计者可确保每个对象都会得到初始化.创建对象时,如果其类具有构造器,Java就会在用户有能力操作对象之前自动调用相应的构造 ...
- Java编程思想 学习笔记4
四.控制执行流程 1.true和false 所有条件语句都利用条件表达式的真或假来决定执行路径.注意Java不允许我们将一个数字作为布尔值使用. 2.if-else 3.迭代 while.do-whi ...
随机推荐
- easyui Dialog 去边框
使用Url页面显示 panel-body 的内容, 因页面高度大于iframe高度,右侧则会出现边框, 如果页面显示的内容高度真实大于iframe高度,那出现边框是很正常. 我的问题就是有内部页面 的 ...
- ubuntu汉化
寻找 Simplified Chinese,点击下面的apply 回到这里在最下面找到刚刚安装的语言,是灰色的,左键点击,将它拖到最上面,点击应用到整个系统,配置完成.重启系统就变成中文了. 晚上不要 ...
- GMM-实现聚类的代码示例
Matlab 代码: % GMM code function varargout = gmm(X, K_or_centroids) % input X:N-by-D data matrix % inp ...
- 查看ElasticSearch服务状态和结果的URL
1,查看es集群状态 http://ip:port/_cat/health?v 2,集群节点健康查看 http://ip:port/_cat/nodes?v 3,列出集群索引 http://ip:po ...
- 【Mysql数据库访问利器】phpMyadmin
缘由 我们程序员难免要和数据库打交道,经过这几年的锻炼,感觉手写SQL语句已经忘记的差不错了,促使我一定要这篇文章的原因是,有一次晚上我更新某个系统的数据库的表(由于目前公司比较严格,数据库都只能通过 ...
- AndroidStudio_RecyclerView
在这里回顾一下RecyclerView的用法 RecyclerView的用法与Button的用法很类似,只是要增加一个Adapter.java文件和item.xml文件 具体用法: 1.在page1. ...
- 转:Java中Scanner类和BufferReader类之间的区别
原文地址:https://blog.csdn.net/u014717036/article/details/52227782 java.util.Scanner类是一个简单的文本扫描类,它可以解析基本 ...
- Appium环境配置(二)
一.使用Eclipse直接创建案例工程 1.打开Eclipse,[File]-->[New]-->[Project] 2.选择[Java Project]-->[Next] 3.输入 ...
- Oracle 11g服务详细介绍及哪些服务是必须开启的
成功安装Oracle 11g后,共有7个服务,这七个服务的含义分别为: 1. Oracle ORCL VSS Writer Service: Oracle卷映射拷贝写入服务,VSS(Volume Sh ...
- AFNetWorking上传JSON串
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.responseSerializer = [AFJSON ...