这一部分在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中抽象类的学习总结 #### 一、抽象类的概念与特点 抽象类是Java编程语言中的一个重要概念,主要用于提供一种部分实现的功能,并允许子类完成剩余的实现。抽象类的特点如下: - **抽象方法**: 在定义Java...
抽象类和接口 ...通过这个实验,我们学习了抽象类、接口、Cloneable 接口和多态性的概念,并掌握了如何使用它们来编写 Java 程序。我们还学习了浅拷贝和深拷贝的概念,并掌握了如何消除浅拷贝的方法。
在Java编程语言中,包(Package)、抽象类(Abstract ...总结来说,Java的包提供了代码的组织结构,抽象类是部分实现的基类,而接口则定义了行为规范。理解并熟练运用这些概念对于编写高效、模块化的Java程序至关重要。
总结来说,Java接口和抽象类都是软件设计中的重要工具,它们在EJB等企业级应用中发挥着关键作用。理解它们的区别和用法,有助于编写更高效、可维护的代码,并且能更好地利用Java的面向对象特性。通过深入学习EJB的...
在Java的学习过程中,抽象类、接口以及内部类是三个非常关键的概念,它们对于理解和实现复杂的软件架构至关重要。这里我们将深入探讨这些概念。 首先,让我们来看看抽象类。在Java中,抽象类是一种不能被实例化的类...
同时,“[浪曦原创]JAVA设计模式 第1讲 抽象类与适配器模式(jzkangta).exe”应该是一个视频教程,可以帮助你更直观地学习。PPT文件“抽象类与适配器模式.ppt”则可能是教学幻灯片,列出了关键点和示例。最后,“demo...
Java是一种面向对象的编程语言,其中的抽象类和接口是两个重要的概念,它们在软件设计中扮演着不可或缺的角色。在本篇Java学习笔记中,我们将深入探讨这两个概念及其作用。 首先,我们来看抽象类。抽象类是那些包含...
在这个实验中,我们探讨了如何使用Java编程语言来创建和使用抽象类以及继承的概念。抽象类Shape被设计为一个基础类,它定义了两个抽象方法:`getArea()` 和 `getPerimeter()`,用于计算形状的面积和周长。抽象方法在...
ASP.NET 是一个强大的Web应用程序开发框架,由微软公司推出,用于构建动态网站...这份名为“第06章 抽象类、多态及接口.pdf”的资源应该会提供更深入的理论讲解和实际案例,对于学习和提升ASP.NET编程技能非常有帮助。
抽象类的主要目的是为一系列相关的类提供一个公共的基类,让这些类共享一部分代码并规定必须实现的接口。在Java中,我们用`abstract`关键字来声明一个类为抽象类,同时可以在其中定义抽象方法(没有方法体的方法)。...
总结一下,`final`关键字提供了不可变性,抽象类用于定义共同行为并强制子类实现某些方法,而接口则用于定义一组方法,使得类可以实现多种功能。这三个概念在Java的面向对象编程中起着至关重要的作用,帮助我们设计...
在Python编程中,抽象类是面向对象设计的一个关键概念,它在实现多态性和接口规范中扮演着重要角色。本文将深入探讨Python中的抽象基类(Abstract Base Classes, ABCs)以及如何使用`abc`模块来创建它们。 1. 抽象...
### Java中的对象转型与多态 ...Java中的对象转型、多态、抽象类以及接口是面向对象编程的重要概念。通过这些机制,我们可以编写更加灵活、可扩展的代码。理解这些概念对于开发高质量的Java应用程序至关重要。
### CoreJava接口学习总结 #### 接口定义与特性 接口是Java编程语言中的一个重要概念,它是类的一种特殊形式,用于定义一种规范或协议。在Java中,接口被设计成一种特殊的类,与普通的类(`class`)是并列存在的。...
抽象类和抽象方法经常被用来定义一组相关类的公共接口。例如,在设计一个图形绘制系统时,可以定义一个抽象类`Shape`,它包含一个抽象方法`draw()`,所有具体形状类(如`Circle`、`Rectangle`等)都继承自`Shape`类...