`
shen_xy
  • 浏览: 5139 次
文章分类
社区版块
存档分类
最新评论

接口、抽象类、事件学习总结

 
阅读更多
这一部分在JAVA中非常重要,我认为算是学好java的重要基石。因为之前没

怎么接触过编程语言,所以当时从学习这些到真正能熟练运用还是挺费劲的(也许是我

太笨了-_-|||)。好了废话不多说,现在我来分享一下我的学习心得,也算给自己总结

一下知识要点。

首先第一点,接口是什么?接口的作用?接口怎么使用?
1.接口是什么。在我看来,程序中的接口是由生活中类似的场景命名的。例如

插座,插座有插孔,用电器的插头插入插孔就有电,就能做不同的事情,这里插孔就是

接口,冰箱的插头可以通过它来取电,用于冰冻食物,电饭煲的插头也可以用它来取电

用于煮饭,吹风机,洗衣机等等都是一个个不同的对象,它们将插头插入插孔,就类似

与程序中的对象实现了接口。所以接口只是一些定义了常量或者抽象方法的类,它没有

具体实现,不同的对象可以通过实现接口来做不同的事。一个类只能继承一个类,但是

却可以实现多个接口。还是用之前的例子,例如我们常使用的全自动洗衣机,要让它能

工作仅仅有电是不可以的,还需要水,我们现在有了一个电的接口插孔,还需要另一个

接口接到水管。类似于这样的过程,一个类可以实现多个接口。
2.接口的作用。我在上一段中已经使用了例子阐述了什么是接口,其实接口的

作用也就不言而喻了,它只是一个空壳,只有抽象方法和常量,没有具体方法,它是供

给不同的对象使用的。很大程度上这也丰富了类的继承,因为java的机制就是只能继承

一个类嘛,现在我写了另一个类需要用到一些固定的方法,要么就自己写,要么就去继

承,可是父类里面如果没有,父类就得再去继承,这样一层一岑往上,很累有没有。况

且这种方法不仅仅是我写的这个类要用,很多很多类都要用,这样工程就太大了,弄一

个接口,供给很多类实现。简直就是很方便。
3.接口怎么使用。接口的定义格式为
public interface 接口名 extends 接口,... {
//定义常量,这三种格式都可以
public final static 数据类型 常量名 = 值;
final static 数据类型 常量名 = 值;
数据类型 常量名 = 值;

//定义抽象方法,同样是有三种方法
public abstract 返回值类型 方法名([数据类型 参数名,...]);
abstract 返回值类型 方法名([数据类型 参数名,...]);
返回值类型 方法名([数据类型 参数名,...]);
}

此处可以看出一个细节,就是接口可以继承多个接口。但其他的类只可以继承一个父类



定义了接口,接口的实现格式是
public class 类名 extends 类或者抽象类  implements 接口,... {

}


接口的基本知识就是以上这些,现在谈谈第二点,抽象类。那么什么是抽象类

?抽象类的作用是什么?怎么使用抽象类?
1.什么是抽象类。包含抽象方法的类叫做抽象类。这就是说,抽象类是一个普

通的类,有普通类可以做的定义属性和方法,但是只要里面有一个方法是抽象方法,这

个类就被称为是抽象类。而“抽象方法”属于一种不完整的方法,只含有一个声明,没

有方法主体。
2.抽象类的作用是什么。我们知道,在java中,所有的对象创建要在类里面

,就说所有的对象都是用类来描述的,但是反之,不是所有的类都要用来描述对象,例

如我们说人类怎样怎样,现在没有给“人类”赋值,没有给它创建一个对象,只是泛泛

地说,给“人类”这个抽象类定义一个“思考”的抽象方法,并不要求具体实现,也没

有给思考加一个特定的方法体。在这里抽象类的作用与接口很相似。但是区别还是有的

,后文将总结抽象类和接口的区别。
3.怎么使用抽象类。定义抽象类的格式:
public abstract class 抽象类名 extends 类或者抽象类  implements 接口,... {

//定义属性
//定义构造方法
//定义普通方法
//定义常量
//定义抽象方法
格式:
访问修饰符 abstract 返回值类型 方法名([数据类型 参数

名,...]);

}


第三点,类,抽象类与接口的区别。
1.首先不得不说,抽象类,接口都属于类。这里为了区分,就将类叫做普通类

。我认为抽象类是介于普通类和接口之间的存在。一个没有抽象方法,一个只有抽象方

法或者常量,中间的这个是既有抽象的,也有普通的。所以第一个区别就是定义的东西

不同。
2.继承的不同,普通类只可以继承一个类,实现多个接口,也可以被继承。抽

象类也同样只能继承一个类实现多个接口,但是它被继承的时候它的子类必须要给出它

所有的方法体,如果不给,那它的子类同样还是抽象类。接口可以继承多个接口。



第四点,事件。关于事件这一块,我学的时候总是很纠结传参的问题,后来经

过不断地对比和编程次数增多,也掌握了一些规律。
首先要明确事件源是什么,刚开始的时候我总是会把鼠标、键盘这些人为动作

发生的地方当做事件源,实际上事件源是指图形界面控件上发生动作的对象。例如我们

要在窗体上画画,则窗体就是事件源,关闭窗口,则关闭的按钮就是事件源。
总之事件源一定是在图形界面控件上的容器或者元素。
明确了事件源的概念,我们要给事件源加上监听器,一产生动作,监听器就能

监听到动作,就会调用相应的方法来产生反应。我们常用的监听器有:

ActionListener  MouseListener  MouseMoveListner  KeyListener
加方法只需在之前加一个add,在后面加一个括号带上参数就好。

在此我要说说传参了,例如现在我们创建了一个窗口JFrame1,在窗口上加了

一个按钮jbu,一按按钮就要画一条直线出来,那我们要给这个按钮添加监听器,发生

的动作是画画,然后我们定义了一个类继承这个JFrame1,实现ActionListener,取名

为DrawListener。
在JFrame1中:
// 给窗体添加一个开始的按钮
JButton jbu = new JButton("开始");
this.add(jbu);
this.setVisible(true);//设置窗体可见,注意要在窗体可见之后

//才能获取画笔

//调用画笔,给按钮添加监听器
Graphics g = this.getGraphics();
DrawListener draw = new DrawListener(g);
jbu.addActionListener(draw);


在DrawListener中:

private Graphics g;//先定义画笔对象

/*
* 构造方法,传递画笔参数,注意构造方法名必须和类名完全相同
*/
public DrawListener(Graphics g){
this.g=g;

}

public void actionPerformed(ActionEvent e) {

//方法体
}


所以传参是要干什么就传什么,要获取坐标,就应该传递窗体参数,要画画就传画笔参

数,要获取账号密码登录,就传账号输入内容和密码输入内容。构造方法的在创建对象

时就可以传参,普通方法要先创建对象,再调用方法传递参数。


以上都是我个人理解,在以后更多的编程和学习中,如果有理解错的或者还有

一些没有考虑到,会再来补充。
分享到:
评论

相关推荐

    抽象类与接口(学习笔记)

    抽象类 什么是抽象类: 类和类之间具有共同特征,讲这些共同特征抽取出来,就形成了抽象类。因为类本身是不存在的,所以抽象类无法创建对象(无法实例化)。 以下借用视频中总结的思维层次图: 抽象类属于什么类型...

    详解PHP的抽象类和抽象方法以及接口总结

    主要介绍了PHP的抽象类和抽象方法以及接口总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Java-抽象类和接口--学习笔记.docx

    JAVA学习笔记,java知识点总结

    C#接口归纳总结实例详解

    C#接口的学习,在编程中,我们经常会用到接口,那什么是接口呢? 接口描述的是可属于任何类或结构的一组相关功能,所以实现接口的类或结构必须实现接口定义中指定的接口成员。 接口使用interface关键字进行定义,...

    java接口与类.doc

    最近看到论坛里有个帖子在讨论接口和抽象类的区别和作用,这其实也是很多面试官喜欢问的问题,这里我就说说我的总结,顺便说说内部类的作用,当是给刚入门,或者想学习java的同学们能更好的理解它们的用法。

    J2SE技术总结-Java学习精华教程-电子书

    接口和抽象类相关设计模式 .....GUI(图形用户界面)和Applet ..........GUI_添加组件 ..........GUI_添加事件 ..........GUI_双缓冲作图 ..........Applet .....异常处理 ..........概述 ..........异常处理 ...........

    Java学习第四周笔记总结

    这周学习包括Java的封装和继承,方法重写和多态,抽象类和接口等相关内容。

    Java之IO流学习总结

    Java IO流学习总结 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据...

    javaSE整体学习总结,超级全面

    多态(polymorphism)的要点,多态的好处和弊端,抽象(abstract),抽象(abstract)类的使用要点,接口(interface),接口的一些方法,接口的扩展(概念),内部类的要点,数组的定义和本质,String类是什么,常用的方法,StringBuffer...

    Java集合框架使用总结

    本文是对Java集合框架做了一个概括性的解说,目的是对Java集合框架体系有个总体认识,如果你想学习具体的接口和类的使用方法,请参看Java API文档。 一、概述 数据结构对程序设计有着深远的影响,在面向过程的...

    java从入门到精通视频教程(全94讲)学习笔记整理(齐全).docx

    -抽象类、接口 -final.作业评讲 -作业、测试题 -数组 -排序、查找 -二进制、位运算、位移运算 -集合 -集合 -集合 -集合补充 -异常 -面试题评讲 -布局管理器 -常用组件 -swing编程实战 -绘图技术.坦克大战2 -事件处理...

    Java学习路线:day15

    模板方法设计模式(TemplateMethod)抽象类的练习接口(interface)概述举例接口的应用:代理模式(Proxy)接口的应用:工厂模式Java 8 中关于接口的改进类的内部成员之五:内部类匿名内部类局部内部类的使用注意面向对象...

    Java基础知识点总结.docx

    无论是工作学习,不断的总结是必不可少的。只有不断的总结,发现问题,弥补不足,才能长久的进步!!Java学习更是如此,知识点总结目录如下: 目录 一、 Java概述 3 二、 Java语法基础 5 数据类型 5 运算符号 14 ...

    java面向对象基础笔记

    java语言概述,java语言基础,程序的控制语句,数组,面向对象基础,继承,多态,抽象类,接口,异常处理,集合类,输入输出流,多线程,JDBC连接数据库等简单的java基础知识。 适合想学习java语言的同学们下载。 ...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    11.2.5 总结:类的修饰符 297 11.3 方法的修饰符 297 11.3.1 方法的访问控制符 298 11.3.2 public:没有限制的修饰符 299 11.3.3 protected:仅对子类和同包的类可见 300 11.3.4 默认控制符:仅在本包中可见 ...

    JAVA(J2SEJ2EE)学习笔记pdf

     内容包括:j2se语法、循环控制、OOP设计、方法设计、重写、重载、抽象类/方法、接口、异常处理、多线程、swing。以及部分oracle内容。   本笔记是pdf格式,经过我多次排版,结构清晰接近出版物,内容充实,示例...

    计算机网络课程学习心得.docx

    对这门课程有了进一步的认识,下面对学习笔记总结如下几点: 一、学习笔记总结 1、参考先进的课程教学模式 《计算机网络》被列为计算机专业和信息类专业的核心基础课程之一,其教学目标是为以后计算机网络及其应用的...

    第一个C#程序Hello World

    比如,它的代理事件模式是一种非常搞的设计概念东西,本人觉得它:接口不象接口,抽象类不象抽象类的,搞了一种什么来自于Callback的概念--唉,无语。。。 总结:如果你能看代码逻辑,那么表示你的C#学得不错,只...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    11.2.5 总结:类的修饰符 297 11.3 方法的修饰符 297 11.3.1 方法的访问控制符 298 11.3.2 public:没有限制的修饰符 299 11.3.3 protected:仅对子类和同包的类可见 300 11.3.4 默认控制符:仅在本包中可见 ...

Global site tag (gtag.js) - Google Analytics