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

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

 
阅读更多
这一部分在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) {

//方法体
}


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

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

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


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

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

相关推荐

    Java实验7抽象类和接口.pdf

    抽象类和接口 ...通过这个实验,我们学习了抽象类、接口、Cloneable 接口和多态性的概念,并掌握了如何使用它们来编写 Java 程序。我们还学习了浅拷贝和深拷贝的概念,并掌握了如何消除浅拷贝的方法。

    抽象类和接口 学习

    ### 抽象类与接口详解 #### 一、引言 在面向对象编程中,抽象类和接口都是用于实现抽象化的重要概念。它们允许开发者定义一组标准行为,并强制子类或实现类遵循这些行为,从而提高了代码的复用性和可维护性。本文...

    java的 包、抽象类和接口的学习

    在Java编程语言中,包(Package)、抽象类(Abstract ...总结来说,Java的包提供了代码的组织结构,抽象类是部分实现的基类,而接口则定义了行为规范。理解并熟练运用这些概念对于编写高效、模块化的Java程序至关重要。

    Java 接口和抽象类区别

    总结来说,Java接口和抽象类都是软件设计中的重要工具,它们在EJB等企业级应用中发挥着关键作用。理解它们的区别和用法,有助于编写更高效、可维护的代码,并且能更好地利用Java的面向对象特性。通过深入学习EJB的...

    java期末复习抽象类与接口,内部类,知识点.zip

    在Java的学习过程中,抽象类、接口以及内部类是三个非常关键的概念,它们对于理解和实现复杂的软件架构至关重要。这里我们将深入探讨这些概念。 首先,让我们来看看抽象类。在Java中,抽象类是一种不能被实例化的类...

    JAVA设计模式(抽象类与适配器模式)

    同时,“[浪曦原创]JAVA设计模式 第1讲 抽象类与适配器模式(jzkangta).exe”应该是一个视频教程,可以帮助你更直观地学习。PPT文件“抽象类与适配器模式.ppt”则可能是教学幻灯片,列出了关键点和示例。最后,“demo...

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

    Java是一种面向对象的编程语言,其中的抽象类和接口是两个重要的概念,它们在软件设计中扮演着不可或缺的角色。在本篇Java学习笔记中,我们将深入探讨这两个概念及其作用。 首先,我们来看抽象类。抽象类是那些包含...

    编写一个抽象类Shape

    在这个实验中,我们探讨了如何使用Java编程语言来创建和使用抽象类以及继承的概念。抽象类Shape被设计为一个基础类,它定义了两个抽象方法:`getArea()` 和 `getPerimeter()`,用于计算形状的面积和周长。抽象方法在...

    asp.net 抽象类、多态及接口

    ASP.NET 是一个强大的Web应用程序开发框架,由微软公司推出,用于构建动态网站...这份名为“第06章 抽象类、多态及接口.pdf”的资源应该会提供更深入的理论讲解和实际案例,对于学习和提升ASP.NET编程技能非常有帮助。

    1.抽象类与适配器模式

    抽象类的主要目的是为一系列相关的类提供一个公共的基类,让这些类共享一部分代码并规定必须实现的接口。在Java中,我们用`abstract`关键字来声明一个类为抽象类,同时可以在其中定义抽象方法(没有方法体的方法)。...

    Java学习笔记---15.面向对象编程10-Java中final关键字,抽象类与接口

    总结一下,`final`关键字提供了不可变性,抽象类用于定义共同行为并强制子类实现某些方法,而接口则用于定义一组方法,使得类可以实现多种功能。这三个概念在Java的面向对象编程中起着至关重要的作用,帮助我们设计...

    Python 模块学习abc模块抽象类.docx

    在Python编程中,抽象类是面向对象设计的一个关键概念,它在实现多态性和接口规范中扮演着重要角色。本文将深入探讨Python中的抽象基类(Abstract Base Classes, ABCs)以及如何使用`abc`模块来创建它们。 1. 抽象...

    Delphi6应用开发指南-第七章(抽象类和静态接口)

    在深入探讨《Delphi6应用开发指南》的第七章——“抽象类和静态接口”时,我们关注于抽象接口的概念及其重要性,以及静态接口在Delphi编程中的具体实现方式。这一章节为我们提供了理解现代软件架构设计的关键概念,...

    java中对象转型多态抽象类接口笔记.doc

    ### Java中的对象转型与多态 ...Java中的对象转型、多态、抽象类以及接口是面向对象编程的重要概念。通过这些机制,我们可以编写更加灵活、可扩展的代码。理解这些概念对于开发高质量的Java应用程序至关重要。

    corejava接口学习总结.pdf

    ### CoreJava接口学习总结 #### 接口定义与特性 接口是Java编程语言中的一个重要概念,它是类的一种特殊形式,用于定义一种规范或协议。在Java中,接口被设计成一种特殊的类,与普通的类(`class`)是并列存在的。...

    java中抽象类与抽象方法的使用问题.docx

    抽象类和抽象方法经常被用来定义一组相关类的公共接口。例如,在设计一个图形绘制系统时,可以定义一个抽象类`Shape`,它包含一个抽象方法`draw()`,所有具体形状类(如`Circle`、`Rectangle`等)都继承自`Shape`类...

Global site tag (gtag.js) - Google Analytics