接口是什么java(什么是接口(java)啊)

2024-07-25 21:05:18 1

接口是什么java(什么是接口(java)啊)

“接口是什么java”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看接口是什么java(什么是接口(java)啊)!

本文目录

什么是接口(java)啊

Java中的接口: 咱们先看个例子: 比如:你笔记本电脑的 USB插口,这就是一个接口!笔记本设计好以后,为了后期 功能的扩展,对外暴露了,好几个接口,通过这些个接口,可以对笔记本电脑进行后期功能的扩展:你可以用USB接口来接鼠标,键盘,移动硬盘…… ; 同理,再看Java中的接口,在软件设计好后,为了后期软件功能的扩展,就要对外暴露接口,方便后期 软件功能的扩展! 至于,接口的 书写格式,以及定义方式,具体用法,以及案例:楼主可以参考本人博文:***隐藏网址*** 以上理解,均为小弟 之愚见,如有纰漏,敬请批评,指点,还望共同探讨,共同进步!

给讲讲java接口的概念!

希望你仔细阅读。对初学者来说,接口不是很好理解。我教过的学生也都提出过这个问题。 我们来看一个类 class A { private int a; public int getA() { return a; } } 这个类的属性是私有的,外界不能访问,而外界可以通过公有方法来访问这个类。我们说一个类的公有方法就是这个类的对外接口。通常 一个类的属性都是私有的,方法大多是公有的。外界只能过个这些公有方法来访问类。这也是Java封装性的体现。如果一个类没有公有属性, 也没有公有方法,这个类就是无法使用的类了。所以我们需要为一个类提供对外接口。 一个类中的方法,不只是说明了它要“做什么”,而且方法的内容也说明了“怎么做”。打个不太恰当的例子,一个杀人方法。从名字上 看,你知道了“做什么”,但没有办法看到“怎么做”。而方法的内容说明了“怎么做”。 class killer { private String name; private int age; private String phone; private String addr; ...... public void kill(Person p) { Qiang qiang = new Qiang("ak47"); qiang.fire(p); } } 这个类的kill方法内容说明了杀人的过程。如果你不想用这种方式杀人。因为你很BT,你想用毒药杀人。那么这个类的内容就需要改。但 是,还有很多其它的“客户”,需要用不同的方式杀人。怎么办呢?一个很好的办法就是,我们只定义“做什么”,而不定义“怎么做”。 interface Killer { public void kill(Person p); } 接口说明了“做什么”,而实现这个接口的类,也就是实现类需要说明“怎么做”。 class Killer1 implements Killer { public void kill(Person p) { Qiang qiang = new Qiang("ak47"); qiang.fire(p); } } class Killer2 implements Killer { public void kill(Person p) { Bane bane = new Bane(); p.eat(bane); } } public class Test { public static void main(String args) { Killer jingKe = new Killer1(); Person yingZheng = new Person(); jingKe.kill(yingZheng); } } 接口可以把“做什么”和“怎么做”分离开来。这给Java带来了很多好处。虽然代码量增加了,可我们的程序的可维护性加强了。我们的程序是可以拆分的。就象电脑一样,可以拆分成很多组件。我一直在想,如果我的MP3耳机可以拆分就好了,那样在耳机只坏掉一个的时候就不用重新买一个了。不过上面的例子看不到什么太大的好处。你可能会说,如果你 的目的是为了不修改代码,那么,如果我想使用Killer2来完成任务,还是需要修改main方法为:Killer jingKe = new Killer2();。没有错, 不过你可以通过一个工厂来完成上面的任务。也就是说,不通过new语句来获得Killer对象,而是通过工厂来获得Killer对象。 public class KillerFactory { public static killer getKiller() { return new Killer1(); } public static Killer getKiller(String path) throws Exception { Properties prop = new Properties(); prop.load(new FileInputStream(path)); String className = prop.getProperty("killer"); Class clazz = Class.forName(className); return (Killer)clazz.newInstance(); } } 代码确实增加了很多,可是这对后期的系统维修和系统升级带来了很多好处。 水龙头与出水管的关系,我们需要把水龙头安装到出水管上。如果有一天我们需要更换水龙头时,只需要把老的水龙头拆卸下来,把新的 水龙头安装到出水管上既可。如果水龙头与出水管是一体的,就是无法拆卸的怎么办呢?或是说出水管只能安装水龙头,而不能安装淋浴器, 这就使我们生活很不方便。我们可以理解为出水管的连接方法,连接的对象是“出水设备”,而这个“出水设备”是一个接口。而水龙头与淋 浴器都是这个接口的实现类。但是接口在哪里呢?它长什么样子?我们没看到。它是一个标准,连接处的内径与外径。螺丝抠的密度等。这就 和你的电脑上为什么可以连接USB设备一样。如果电脑和某一个USB设备电焊到一起,那么其它的USB设备就无法使用了。电脑使用的是实现了 USB接口的电子设备,而我们的U盘、MP3、移动硬盘及鼠标都是USB接口的实现类。 用Java写出来的程序也和我们现实生活中的设备一样。如电脑,我们希望电脑的所有部件都可以更换,如果主板上的内存插槽与内存条不 附。我们说,内存条没有实现某某接口。Java是完全面向对象的,而面向对象是我们最为熟悉的东东。面向对象并不简单,而是我们太熟悉它 了。所以我们学习Java会很方便。在现实社会中,所有的标准到了Java中都是接口。一盒香烟多少支烟,烟的长度等都是标准。一个光盘的大 小。Java中的JDBC就是一个标准,而各大数据库厂商及第三方厂商实现了这一标准。JDBC只说明了目的,没有说明怎么完成的目的。 面向对象就在我们眼前,不过我们有时不太注意它。希望你在今后学习Java时,多与现实社会联系。这样可以有利与你的理解。 代码量加大了,但对后期的维护与升级提供了方便。软件公司卖给客户的是class文件,而不是java文件。如果你的客户需要更换Killer对 象,只需修改资源文件既可。 下面我们来看一个定时器类。现在什么都是自动化的,如空调、电视、洗衣机等等。都要用到定时器这个类。对了,还有定时炸弹也要用 它。那我们可不可以只写一个定时器类,应用到所有的需要定时器的设备上呢?答案是肯定的,我们需要这个类。 好了,我们来分析一下定时器需要完成什么工作吧。定时器应该有启动、停止方法。定时器启动之后,每过一定时间就执行某个动作。其 中时间间隔为long型,而要执行的动作可能是输出一个字符串,也可能是打印作业。具体要干什么由使用定时器的用户来完成。而定义定时器 时,根本就不知道要干什么。 public class Timmer { private long time; private Action action; public Timmer() {} public Timmer(long time, Action action) { this.time = time; this.action = action; } public void start() { state = START; if(th == null) { th = new Thread() { public void run() { while(state == START) { try { Thread.sleep(time); action.action(); } catch(Exception e) { } } } }; } th.start(); } public void stop() { state = STOP; } public void setTime(long time) { this.time = time; } public void setAction(Action action) { this.action = action; } public long getTime() { return (this.time); } public Action getAction() { return (this.action); } } Action是一个接口,它只有一个方法,就是要完成的任务。我们在定时器启动时调用这个接口的方法。而这个Action接口的对象,代表一 个动作,这个动作就是用户要完成的动作。 public interface Action { public void action(); } public static void main(String args) { Timer t = new Timer(2000, new Action() { public void action() { System.out.println("Hello World!"); } }); t.start(); javax.swing.JOptionPane.showMessageDialog(null, "点击确定按钮停止定时器"); t.stop(); System.exit(0); } 这是一个典型的回调方法例子。在AWT中,java使用了大量的监听器。这些监听器都是回调方法。在XML解析器SAX中,也使用了回调方法来解析XML文档。 接口要比抽象类还要抽象。抽象类需要子类继承,而Java是单继承,所以抽象类被限制了。而接口不同,一个类可以实现多个接口。好比人类与程序员类之间的关系。可以说程序员是人类的子类,如果程序员是一个接口。用人类的子类来实现它就会更好。这个子类还可以去实现会计接口、音乐家接口等等。 在struts2.0、spring、hibernate等框架中,都大量使用接口。我们关心的是某个接口与另一个接口之间的关系。而不关心某个实现类与另一个接口实现类的关系。在客观世界中,我们交谈时都大量使用接口,只是我们没有注意罢了。如:我公司需要一个程序员(一个实现了程序员接口的对象)。上课时,讲师有一台计算机,用白板笔在白板上写字(计算机是接口,白板及白板笔也是接口)。讲师希望学生能学会所有的知识(讲师及学生都是接口)。 就说这么多了,还有什么不明白可以与我联系。QQ:51038648 我在北京中科院计算所培训中心做兼职java讲师。我的经验是,要想学好Java,一定要多打代码、吃透代码。如果不勤奋,就一定学不好。看来你是刚刚开始学习Java,你后面的路还很长,而且不是很好走。

什么是java接口

面向接口开发是面向对象开发的一个重要思想,面向对象开发是说将一切看成为对象操作,其特性就是封装、继承、多态。接口的最主要的作用是达到统一访问,就是在创建对象的时候用接口创建,【接口名】 【对象名】=new 【实现接口的类】,这样你像用哪个类的对象就可以new哪个对象了,不需要改原来的代码,就和你的USB接口一样,插什么读什么,就是这个原理。就像你问的,都有个method1的方法,如果我用接口,我上面就可以one.method1();是吧?那样我new a();就是用a的方法,new b()就是用b的方法一个类实现了接口就必须实现其里面所有方法,除非这个类是抽象类,就是用abstract修饰的。接口之间可以继承这里要区分继承和实现,关键字也不一样extends继承, implements实现java中不允许一个类继承多个类,但是可以实现多个接口

关于接口是什么java到此分享完毕,希望能帮助到您。

接口是什么java(什么是接口(java)啊)

本文编辑:admin

更多文章:


chrome直接下载(ipad怎么下载chrome电脑版)

chrome直接下载(ipad怎么下载chrome电脑版)

本文目录ipad怎么下载chrome电脑版怎么让chrome直接下载pdf文档而不需要打开再另存ipad怎么下载chrome电脑版在平板的桌面上找到软件商店然后下载。首先,在平板的桌面上找到软件商店,点击版打开,然后,在搜索框内输入权chr

2024年7月11日 23:30

finebi官网(finebi admin用户制作的报表其他用户怎么看)

finebi官网(finebi admin用户制作的报表其他用户怎么看)

本文目录finebi admin用户制作的报表其他用户怎么看finebi有谁知道好用吗finebi是什么finebi大赛作品在哪里可以看finebi admin用户制作的报表其他用户怎么看你可以在权限管理里面设置其他用户的权限,并且将你自己

2024年6月29日 02:56

登录界面代码制作(如何制作HTML网页登录 就是固定账号密码的那种 应该用代码就可以了吧)

登录界面代码制作(如何制作HTML网页登录 就是固定账号密码的那种 应该用代码就可以了吧)

本文目录如何制作HTML网页登录 就是固定账号密码的那种 应该用代码就可以了吧VB制作QQ登录窗口教程和代码C语言如何win32制作一个登录界面,我卡住了,不知道接下来代码该怎么写用Dreamweaver做登陆和注册界面的代码怎样用div+

2024年7月17日 16:26

cdata嵌套(php正则表达式匹配Html嵌套标签)

cdata嵌套(php正则表达式匹配Html嵌套标签)

本文目录php正则表达式匹配Html嵌套标签mysql能用为什么js脚本可以定义为注释形式libxml 怎样解析cdataphp正则表达式匹配Html嵌套标签不知道可不可以,试试吧$result=preg_match_all(“/《div

2024年7月24日 12:57

github下载app(github会显示在线吗)

github下载app(github会显示在线吗)

本文目录github会显示在线吗github怎么下载appiphone怎么安装第三方软件手机edge怎么打开github手机github下载按钮在哪手机上怎么下载github上的代码文件ios adowngrader 怎么用GitHub 上

2024年7月14日 07:06

计算机入门基础(计算机入门应该先学什么)

计算机入门基础(计算机入门应该先学什么)

本文目录计算机入门应该先学什么怎样学习电脑基础知识学计算机需要什么基础知识如何学电脑基础入门计算机入门应该先学什么计算机入门应该先学习以下几个方面:1.计算机基础知识:包括计算机组成原理,操作系统的相关概念、计算机网络,以及计算机安全等基础

2024年7月24日 00:17

netcut安卓下载(限制区域网下载)

netcut安卓下载(限制区域网下载)

大家好,今天小编来为大家解答以下的问题,关于netcut安卓下载,限制区域网下载这个很多人还不知道,现在让我们一起来看看吧!本文目录限制区域网下载怎么在局域网中限制使用BT下载请给我一个网络剪刀手可以用,而且可以下载的地址谢谢!限制区域网下

2024年9月6日 08:55

递归函数求和(excel递归求和)

递归函数求和(excel递归求和)

本文目录excel递归求和递归 1到n 求和 C语言python递归函数1到n求和编写递归函数,实现求sum=1+2+3+.+nVB中用递归函数求和C语言:递归求和php递归的方法求和1+2+3++nexcel递归求和Excel求和,好常

2024年5月17日 06:07

写出快速排序算法(排序算法有哪些,简述快速排序的核心)

写出快速排序算法(排序算法有哪些,简述快速排序的核心)

本文目录排序算法有哪些,简述快速排序的核心帮我写一个快排的算法快速排序算法的排序演示如何用PB写一个快速排序的算法呢用C语言编写一个快速排序算法 输入10个数排序算法有哪些,简述快速排序的核心简单的: 冒泡,选择排序,插入排序,桶排序,复杂

2024年5月13日 13:39

asparagus怎么读(asparagus怎么读)

asparagus怎么读(asparagus怎么读)

本文目录asparagus怎么读蔬菜味,对蔬菜的英文怎么读asparagus怎么读asparagus 英Crops grown include tomatoes ,artichokes ,asparagus and snap peas.

2024年7月23日 06:38

代码大全游戏(异度之刃3金手指代码汇总全区域版本通用秘籍指令大全)

代码大全游戏(异度之刃3金手指代码汇总全区域版本通用秘籍指令大全)

本文目录异度之刃3金手指代码汇总全区域版本通用秘籍指令大全饥荒代码大全英灵神殿控制台代码大全赛博朋克2077控制台代码大全控制台指令汇总CSGO2022指令代码大全,fps左右手控制台作弊码腐蚀Rust游戏指令代码大全异度之刃3金手指代码汇

2024年5月13日 10:20

以太网是什么网络(以太网是什么意思)

以太网是什么网络(以太网是什么意思)

本文目录以太网是什么意思什么是以太网为什么要叫做“以太”网以太网是什么和宽带连接有区别吗以太网是什么意思以太网(Ethernet)是采用带碰撞检测的载波侦听多址访问(CDMA/CD)方法进行介质访问控制的一种局域网。以太网主要指数据传输所经

2024年5月8日 00:39

公司首页模板(如何写公司简介,有没有模板)

公司首页模板(如何写公司简介,有没有模板)

其实公司首页模板的问题并不复杂,但是又很多的朋友都不太了解如何写公司简介,有没有模板,因此呢,今天小编就来为大家分享公司首页模板的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录如何写公司简介,有没有模板如何制作企

2024年9月10日 05:15

matlablength函数用法(matlab数组求连续相同为0的长度)

matlablength函数用法(matlab数组求连续相同为0的长度)

本文目录matlab数组求连续相同为0的长度matlab中整数,浮点数和复数运算时对数据类型的matlab 如何计算一幅图像中某一灰度值的像素个数matlab中length函数如何使用MATLAB作出如下函数ns关于x变化的函数,x的取值范

2024年7月24日 07:24

英语好学吗?你觉得游戏开发好学吗,低学历自学能学会吗,怎么样

英语好学吗?你觉得游戏开发好学吗,低学历自学能学会吗,怎么样

本文目录英语好学吗你觉得游戏开发好学吗,低学历自学能学会吗,怎么样吉他好学吗尤克里里好学吗电焊工好学吗多久能学会呢嵌入式开发用的是什么语言好学吗PHP好学吗竹笛好学吗太极拳难学吗吉他自学好学吗需要多久英语好学吗与其它语言横向比较,英语是最好

2024年7月24日 16:57

dedecms分页后无法生成(织梦仿站时列表页分页第二页为什么显示不出来出现404页,我查看了已经生成了HTML页,却路径不对)

dedecms分页后无法生成(织梦仿站时列表页分页第二页为什么显示不出来出现404页,我查看了已经生成了HTML页,却路径不对)

本文目录织梦仿站时列表页分页第二页为什么显示不出来出现404页,我查看了已经生成了HTML页,却路径不对dede后台发表文章后为什么是未生成状态,在前台也无法看到dedecms静态页面生成问题织梦dedecms列表分页不显示dedecms里

2024年2月8日 23:00

while循环(while循环怎么停止)

while循环(while循环怎么停止)

本文目录while循环怎么停止while循环与for循环有什么区别while 是什么意思 刚学编程while循环怎么停止while是一个循环体,退出循环体的方法有:1、循环体条件 不成立,如:while( a》0); 当 a≤0 的时候,条

2024年5月5日 20:13

渐变蓝底证件照(报考公务员时,需要提交蓝底证件照蓝底可以是蓝底渐变色的吗(如下图)还是必须要纯蓝色背景的)

渐变蓝底证件照(报考公务员时,需要提交蓝底证件照蓝底可以是蓝底渐变色的吗(如下图)还是必须要纯蓝色背景的)

本文目录报考公务员时,需要提交蓝底证件照蓝底可以是蓝底渐变色的吗(如下图)还是必须要纯蓝色背景的蓝色渐变底和蓝底区别背景色是渐变的蓝色属于标准证件照吗报考公务员时,需要提交蓝底证件照蓝底可以是蓝底渐变色的吗(如下图)还是必须要纯蓝色背景的不

2024年4月6日 16:25

check约束是什么(check约束属于哪种完整性约束)

check约束是什么(check约束属于哪种完整性约束)

大家好,如果您还对check约束是什么不太了解,没有关系,今天就由本站为大家分享check约束是什么的知识,包括check约束属于哪种完整性约束的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录check约束属于哪种

2024年7月23日 09:04

一个html文件的开始标签是什么(每一个HTML文件总是由<body>标记开始, 由</body>结束是正确的吗)

一个html文件的开始标签是什么(每一个HTML文件总是由<body>标记开始, 由</body>结束是正确的吗)

本文目录每一个HTML文件总是由标记开始, 由结束是正确的吗在HTML文档中,第一标签是为了标识一个html文件开始应该使用的html标记是表示整个Html文件的开始标记是,那么结束标记是位于html文档的最前面的标签是什么简述HTML文件

2024年7月18日 00:37

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1730
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1156
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1152
标签列表

热门搜索