`
_jia_shun
  • 浏览: 25033 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
社区版块
存档分类
最新评论

接口和事件机制

 
阅读更多

1.接口定义:

    关键字是:interface

    定义格式:

             public interface 接口名 extends 接口,... {

//定义常量      注意:常量名的每一个字母都要大写,类也是一样!

public static final 数据类型 常量名 = 值;

                (三个写任意一个或者两个三个都行)

static final 数据类型 常量名 = 值;

数据类型 常量名 = 值;

 

//定义抽象方法

public 返回值数据类型 方法名(数据类型 参数名,...);

public abstract 返回值数据类型 方法名(数据类型 参数名,...);

返回值数据类型 方法名(数据类型 参数名,...);

    }

            注:接口是一种特殊的类!

                   接口中只有一种访问修饰符,就是public

                   接口和普通类的区别:接口中方法全部抽象方法,定义关键字不同,接口可以继承多个

                                                      接口,接口被集成后方法要全部实现,接口不能实例化对象,

2.接口的实现:

        实现接口的关键字:implements

实现格式:

public class 类名 extends 类或者抽象类 implements 接口名,... {

 

}

注意:

1.必须要实现接口中所有的抽象方法。

2.类去实现接口实际上就让类和接口拥有继承关系。

 

接口作用:

1.接口就是丰富类的继承。

2.事件机制中要使用接口。

3.团队开发

   例子:

package 接口;


/*画圆的类的实现*/
public class ImpOval implements NetJavaShape {
	
	public String doWork(){
		String a="啦啦啦!";
		return a ;
	}
	public void draw(int x1 ,int y1,int x2,int y2){
		System.out.print("画圆形!");
	 
		//接口中的属性定义可以作为常量使用
		System.out.println("出品人:"+NetJavaShape.compName);
	}
	
	public String doOther(){
		String s="这是我实现OtherShape接口中的方法";
		return s ;
	}
	
	public static void main(String[] args){
		NetJavaShape shape=new ImpOval();
		int x1=10,y1=12 ;
		int x2=20,y2=20 ;
		shape.draw(x1,y1,x2,y2) ;
		
		//作为OtherShape
		OtherShape os=new ImpOval() ;
		OtherShape_1 os_1=new ImpOval(); 
		System.out.println(os.doOther());
		System.out.println(os_1.doWork());
	}
}



package 接口;

/*形状接口的定义*/
public interface NetJavaShape extends OtherShape,OtherShape_1 {

	public static final String compName="溫家顺" ;
	
	//接口中定义的方法,
	public void draw(int x1 , int y1 , int x2 ,int y2);
}



package 接口;

public interface OtherShape_1 {
	String doOther() ;
	String doWork() ;
}



package 接口;

public interface OtherShape {

	String doOther() ;
}


 

3.抽象类的实现与继承

抽象类介于类和接口之间的一种特殊类。

定义的关键字:abstract class

语法格式:

public abstract class 抽象类名 extends 类或者抽象类 implements 接口,... {

//定义类中所有的属性和方法(普通方法和构造方法)

//定义接口中的常量和抽象方法。

访问修饰符 abstract 返回值数据类型 方法名(数据类型 参数名,...);

}

注意:抽象类不能实例化对象。

 

 

事件机制三部分:事件源;事件监听器方法;事件处理类

 

4.事件源:可以成为事件源对象的是:所有的图形界面组件对象。

         你的动作发生在哪一个组件上,那么该组件对象就是事件源对象

5.事件监听器方法://动作监听器方法(输入框就是回车操作,按钮上就是鼠标单击)

                        addActionListener(ActionListener al);

                        //鼠标监听器方法

                        addMouseListener(MouseListener ml);

                        //鼠标移动监听器方法

                        addMouseMotionListener(MouseMotionListener mml);

                        //键盘监听器方法

                        addKeyListener(KeyListener kl);

6.事件处理类:定义类实现监听器接口。

例:

package 事件机制;

import java.awt.FlowLayout;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class JFrameTest {

	public static void main(String[] args) {
    JFrameTest jt = new JFrameTest() ;
    jt.showFrame() ;
	}
	public void showFrame(){
		JFrame jf =  new JFrame() ;
		jf.setTitle("界面");
		//创建流式布局管理器对象
		
		JLabel la_name=new JLabel("名字:") ;
		JTextField jta_name=new JTextField(10) ;
		JButton bu_login = new JButton ("登录") ;
		jf.add(la_name);
		jf.add(jta_name);
		jf.add(bu_login);
		
		FlowLayout f1 = new FlowLayout();
		jf.setLayout(f1);

		//设置窗体属性
		jf.setSize(500, 400); //窗口大小
		jf.setDefaultCloseOperation(3);//窗口可关闭
		jf.setLocale(null); //窗口位置
	   
				
				//窗体可见
				jf.setVisible(true);
		
		//窗体可见
		jf.setVisible(true);
		
		//创建一个监听器对象
		MyMouseListener m1 = new MyMouseListener();
		//监听器加给按钮
		bu_login.addActionListener((ActionListener) m1);
		
	}

}


package 事件机制;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;


public class MyMouseListener implements ActionListener {

	//重写接口中的所有函数
	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		
		//得到事件源对象
		Object sour = e.getSource() ;
		
		//如果事件源是一个按钮:
		if(sour  instanceof JButton){
		JButton bu =  (JButton) sour ;
			String lab = bu.getText() ;
			System.out.println("按下了一个按钮"+lab);
			//重新设一下按钮上的文字
			//“我被按了一下!”
		}
		else{
			System.out.println("其他组件发生的事儿!");
		}
	}
	
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    完全理解android事件分发机制

    **onClick():**这个函数是是View提供给我们的OnClickListener这个接口中的函数,在这里可以自定义对点击事件的处理逻辑。会在onTouchEvent()中进行调用。 **onTouch():**这个函数是View提供给我们的...

    深入探索Spring事件监听机制:技术与应用

    Spring框架作为Java开发的核心,其事件监听机制是理解和利用Spring的关键要素之一。这种机制基于观察者模式,由事件(ApplicationEvent)、...Spring的事件机制允许一个事件被多个监听器监听,增加了灵活性和可扩展性。

    mmi开发事件(event)机制

    介绍了整个mmi框架,消息队列处理机器,各种类型的事件响应机制,如高亮,键盘,计时器等事件的响应机制,并详细介绍了相关事件所涉及的相关接口函数,并介绍屏幕历史管理相关的函数,如果你想学习MTK相关的技术,这...

    接口回调Demo

    在android中,接口回调是一种很常见的机制,它可以大大降低代码间耦合性,提高程序的复用性。我们经常碰到的点击事件就是利用的接口回调机制。这里我利用接口回调回传AsyncTask下载的数据~

    深入浅析Android接口回调机制

    在Android中到处可见接口回调机制,尤其是UI事件处理方面,本文给大家介绍android接口回调机制,涉及到android接口回调相关知识,对本文感兴趣的朋友可以参考下本

    论文研究-事件和参数双因素驱动的智能模型集成机制.pdf

    为了增强DSS模型的可重用性及系统的元决策能力,提出了利用事件和参数共同驱动的双因素模型集成机制。将DSS中的可重用模型体系分解为由元模型、复合模型、过程模型构成的层次结构,重新定义了工作流管理领域中的ESP...

    基于libevent自定义封装的函数接口(启动http服务器、启动事件服务等)

    libevent 轻量级的开源高性能事件通知库,支持多种 I/O 多路复用技术,内部使用select、epoll、kqueue、IOCP等系统调用管理事件机制。 支持 I/O,定时器和信号等事件,支持注册事件优先级。可用来构建http服务端、...

    Java接口回调机制

    异步调用是一种类似消息或事件的机制解决了同步阻塞的问题,例如A通知B后,他们各走各的路,互不影响,不用像同步调用那样,A通知B后,非得等到B走完后,A才继续走。回调是一种双向的调用模式,也是说,被调用的接口...

    Java利用接口实现回调

     熟悉MS-Windows和X Window System事件驱动编程模型的开发人员,习惯于传递在某种事件发生时调用(即“回调”)的函数指针。Java的面向对象模型目前并不支持方法指针,这样似乎不可能使用这种很好的机制。但我们并...

    CTP 行情接口

    CTP 期货行情接口api,C++接收期货行情,事件推送机制.

    论文研究-深入研究BREW事件处理机制 .pdf

    深入研究BREW事件处理机制,薛飞,,BREW是美国高通公司(QUALCOMM)为无线数据应用程序开发和执行提供的通用接口平台,主要支持CDMA手机,最新也可以支持GSM手机。BREW提供�

    详解Android的两种事件处理机制

    UI编程通常都会伴随事件处理,Android也不例外,它提供了两种方式的事件处理:基于回调的事件处理和基于监听器的事件处理。 对于基于监听器的事件处理而言,主要就是为Android界面组件绑定特定的事件监听器;对于...

    精通Windows.API-函数、接口、编程实例.pdf

    17.2 安全机制程序示例 509 17.2.1 列举进程访问令牌内容和权限 509 17.2.2 修改进程的权限 514 17.2.3 列举安全对象的安全描述符 515 17.2.4 修改安全描述符 521 17.3 用户 522 17.3.1 ...

    事件总线框架AndroidEventBus.zip

    这是一个Android平台的事件总线框架, 它简化了Activity、Fragment、Service等组件之间的交互,很大程度上降低了它们之间的耦合,使得我们的代码更加简洁,耦合性更低,提升我们的代码质量。在往下看之前,你可以考虑...

    inotify-tools-3.14.tar.gz+linux文件同步软件(含安装方法和同步脚本)

    Inotify是一种强大的、细粒度的、异步的文件系统事件...相比之下,inotify 基于事件驱动,可以做到对事件处理的实时响应,也没有轮询造成的系统资源消耗,是非常自然的事件通知接口,也与自然世界的事件机制相符合。

    银行系统软件接口测试

    第4章 文件系统接口测试 文件系统攻击分为两类:基于介质的攻击和基于文件的攻击 基于介质的攻击 基于介质的攻击目标是模拟存储介质本身-软盘、硬盘、CD-ROM等 攻击1 按容量填满文件系统 按容量填满文件系统会确保你...

    精通WindowsAPI 函数 接口 编程实例

    17.2 安全机制程序示例 509 17.2.1 列举进程访问令牌内容和权限 509 17.2.2 修改进程的权限 514 17.2.3 列举安全对象的安全描述符 515 17.2.4 修改安全描述符 521 17.3 用户 522 17.3.1 创建用户 522 ...

    inotify-tools-3.14.tar.gz工具源码包

    Inotify是一种强大的、细粒度的、异步的文件系统事件...相比之下,inotify 基于事件驱动,可以做到对事件处理的实时响应,也没有轮询造成的系统资源消耗,是非常自然的事件通知接口,也与自然世界的事件机制相符合。

    Java基础核心理解+什么是回调即回调机制讲解

    模块之间总是存在这一定的接口,从调用方式上看,可以分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,也是我们在写程序中经常使用的;回调是一种双向的调用模式,也就是说,被调用的接口被调用时也...

Global site tag (gtag.js) - Google Analytics