《Java语言程序设计(基础篇)》读书笔记(五)

原创 2013年10月15日 23:28:27
《Java语言程序设计(基础篇)》读书笔记(五)
作者:wangzz
原文地址:http://blog.csdn.net/wzzvictory/article/details/12719791
转载请注明出处
如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号wangzzstrive来支持我,谢谢!

第十四章 抽象类和接口
1、抽象类
简单的说,包含了抽象方法的类叫作抽象类。抽象类的声明方式如下:
public abstract class AbstractClassName {
  //构造方法,定义为protected类型
  protected AbstractClassName() {
  }
  //非抽象方法
  public void method1 { 
  }
  //抽象方法
  public abstract int method2 {
  }
}
抽象类具有以下特点:
不能创建抽象类的实例对象;
②一个包含抽象方法的类必须声明为抽象类;
抽象类的构造方法要定义为protected类型,因为它只被子类使用;

2、接口
接口是一种特殊的类,在很多方面都和抽象类很像。接口声明方式如下所示:
public interface Edible {
  public abstract String howToEat();
}
接口声明使用的关键字是interface。使用接口的方式如下:
public class Apple implements Edible {
  public String howToEat() {
    return "Apple:Make apple cider";
  }
}
继承接口使用的关键字是implements。
说明:
由于接口中所有的数据域都是publec final static类型,所有的方法都是public abstract类型,所以Java允许忽略这些修饰符,下面的接口定义是等价的:
public interface T {
  public static final int K = 1;
  public abstract void p();
}
等价于:
public interface T {
  int K = 1;
  void p();
}
②接口内定义的常量由于都是public static类型的,因此可以使用语法“接口名.常量名”(例如,T.K)来访问。

3、接口和抽象类
相同点:
①本质上都是特殊的类;
②都不能被实例化。
③由于包含抽象方法的类都是抽象类,因此如果一个类继承了抽象类或者扩展了一个接口,它就必须实现抽象类或者接口中的所有抽象方法
不同点:
①在变量和方法上的区别,如下图所示:


Java只允许单继承类,但是允许多重继承接口
③接口只能扩展接口,但是类既能扩展接口又能扩展类;
④接口没有共同的跟,但所有的类都共享同一个跟类Object;
接口表示事物具有的能力或行为,这些事物可以不属于同一类型,类表示同一类型的事物具有的属性
⑥接口名可以是形容词或者名词,但类名只能是名词。

第十五章 图形
主要讲了Java中的画图方法,不是我想了解的重点,暂时飘过。

第十六章 事件驱动程序设计
1、源对象
能创建一个事件并触发该事件的组件成为源对象。

2、事件类
事件类的跟类是java.util.EventObject,一些事件类的层次结构如下图所示:


每个源对象可能可以触发不同的事件类型,而源对象针对每个事件都维护这一个注册的监听器列表

3、内部类
内部类又叫嵌套类,是定义在另一个类的范围内的类,语法格式如下所示:
public class Test {
  ...
  //Inner class
  public class InnerClassName {
    ...
  }
}
通常,如果内部类只是被外部类使用,那就将该类定义成内部类,内部类具有以下特点:
①内部类会被编译成一个名为OuterClassName&InnerClassName.class的类;
内部类可以引用定义在它嵌套的外部类中的数据和方法
内部类可以看成外部类一个特殊的数据成员,在使用可见性修饰符定义内部类时,遵从和类成员一样的可见性规则;
④内部类的对象常在其外部类中创建,但也可以从另一个类中创建一个内部类对象,如果内部类是静态的,可以使用下面的语法:
OutClass.InnerClass innerObject = new OuterClass.InnerClass();
如果内部类是非静态的,可以使用下面的语法:
OutClass.InnerClass innerObject = outerObject.new InnerClass();

内部类的作用:
①将从属类合并到主类中,可以减少源文件的数量,也可以使类文件便于组织;
②避免类命名冲突。

4、匿名内部类
匿名内部类是没有名字的内部类,它一步完成定义内部类和创建一个该类的实例。通常可以使用匿名内部类简化内部类监听器。
匿名内部类的语法如下:
new SuperClassName/InterfaceName {
  //Implement or override methods of superclass or interface
  //Other methods if necessary
}
匿名内部类有以下特点:
①匿名内部类必须总是扩展父类或者实现接口,但不能有显式的extends或者implements子句;
②同所有非抽象子类一样,匿名内部类必须实现父类或接口中的所有抽象方法;
匿名内部类总是使用它的父类的无参构造方法来创建实例,如果匿名内部类实现了接口,构造方法就是Object()
④匿名内部类被编译成一个名为OuterClassName&n.class的类。例如,如果外部类Test有两个匿名内部类,它们就被编译为Test&1.class和Test&2.class。

第十七章 创建图形用户界面
主要讲述了几种控件的使用,在此略过。

未完待续。。。

相关文章推荐

《Java语言程序设计(基础篇)》读书笔记 完结篇

第十八章 applet和多媒体 Java通过AWT中的Applet类提供了一个开发applet程序的基本框架结构。 1、applet应用和Java GUI应用 区别: ①Java GUI程序直接运行在...

《Java语言程序设计(基础篇)》读书笔记(三)

《Java语言程序设计(基础篇)》读书笔记(三) 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/12676811 ...

读书笔记--Java语言程序设计基础12章异常-1

异常的种类: 1、1、异常的分类有三种:系统错误(System Error)、异常(Exception)和运行时异常(RunTimeException)。 a)系统错误:即虚拟机产生的内部...

java语言程序设计(进阶篇)读书笔记 之 数据结构每天一小练--堆(一)

堆是一种特殊的完全二叉树,它要求每个节点都大于或等于它的一个子节点 由于二叉树的性质可知 1,一个节点的父节点(i)的位置在:(i-1) / 2 2,一个节点的坐子节点(i)的位置为...

Java语言程序设计 【基础篇】 【学习笔记】

1.在使用System.in时 需要使用a.close(); 否则输入流没有关闭,是不够严谨的。 package chapter02; import java.util.Scanner; public...

《java语言程序设计-基础篇》笔记一

第一章、计算机、程序和java概述 中央处理器 CPU由两部分组成:控制单元和算术/逻辑单元 控制单元用于控制和协调除CPU之外其他组件的动作 算术/逻辑单元用于完成数值运算和逻辑运算 每台...

《java语言程序设计基础篇》笔记二

第15章、图形 graphics类是一个提供与设备无关的图形界面的抽象类,它可以在不同平台的屏幕上显示图形和图像 面板是不可见的,它们用作一个小型容器,这个容器将组件进行分组获得所需的布局...

Java语言程序设计(基础篇)- 笔记(持续更新中)

用方法传递对象参数 给方法传递一个对象,是将对象的引用传递给方法。 Java只有一种参数传递方式:值传递(pass-by-value) 当传递基本数据类型参数时,传递的是实参的值,不会改变原始的值; ...

java程序设计与问题解决(基础篇)-读书笔记-1

Java编译器将Java程序翻译成字节码,字节码是是一台假想计算机的机器语言,这台假想计算机就是Java虚拟机,解释器将字节码逐条翻译成机器语言,Java虚拟机负责翻译及运行Java字节码 ...

C语言程序设计现代方法第二版基础部分读书笔记(【美】K.N.King 著)

哈喽!我是甜筒科技【Aice】的大虫,首先先简单的谈谈本人对这本书的一些看法吧,刚刚从图书馆看到这本书的时候就感觉和其他书不一样,除了厚以外,简介的封面设计也吸引到了我。ps:为什么说感觉和其他书不一...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《Java语言程序设计(基础篇)》读书笔记(五)
举报原因:
原因补充:

(最多只允许输入30个字)