首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

承袭接口总结 监听器初步

2012-09-23 
继承接口总结监听器初步?Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没

继承接口总结 监听器初步

?

Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

?

? ?接口的主要特点

?

1 接口继承和实现继承的规则不同,一个类只有一个直接父类,但可以实现多个接口。

2 ? Java接口本身没有任何实现,因为Java接口不涉及表象,而只描述public行为。

?

3 ? Java接口的方法只能是抽象abstract的和公开public的,Java接口不能有构造器,Java接口可以有public,静态的和final属性。


下面以此次代码来说明(person student? ustudent? test)


先创建person 接口

注: * person在此处是一个接口

??????? * 接口的属性必须是public的静态常量(如age=20)

??????? * 接口的方法必须是public的抽象方法

??????? * 接口无构造方法,不能实例化对象

??????? * 接口实际上是父类,但全部给子类去扩展

??????? * 接口的子类 在实现接口的时候必须要实现接口中所有的方法

代码如下:

public interface person{//接口的属性是 public static(=静态的) final,且是默认//也即即使你不打,系统也会默认public static final int age=20;//与属性同样,方法也只能是 public abstract(= 抽象的)且是默认public abstract void eat();public abstract void rest();}

?
定义父类 student

注:

* 定义student类,实现person这个接口

* 接口的子类 在实现接口的时候必须要实现接口中所有的方法

下面解释将会写在代码的注释里面

public class student implements person{//public class student   这里就要屏蔽掉~~// string 字符串 别总忘记含义呐...public String name;public student() {System.out.println("学生");}public void setName(String name) {/*** this 指的是一个对象 相当于指针的作用 this.name和public String name同一个 已经定义了* 然后再把其赋给了第二个name 就是setname定义的name*/this.name = name;}public static  int age=21;// 下面是方法public void study() {System.out.println(name + "在学习");}/*** 下面实现接口的方法* 和student类定义的方法的模式一样~*/public void eat(){System.out.println(name+"在吃饭");}public void rest(){}}

?

在定义子类 ustudent

补充下子类的注意:


* 子类可以继承父类

* 子类只能有一个父类

* 子类继承了父类的属性和方法

* 子类可以定义自己特有的属性和方法

代码如下,解释依旧写在注释里

public class ustudent extends student {public ustudent() {System.out.println("大学生");}public static final int age=26;// 子类特有的方法public void cet4() {System.out.println(name + "考四级");}/*** 子类重写父类的方法 * 重写只能发生在子类重写父类的方法 * 方法的定义不变,只是改变方法体* 也可以重写父类的接口*/public void study() {System.out.println(name + "用大学生方法学习");}//在重写eatpublic void eat(){System.out.println(name+"在大学饭堂吃饭");}}

?


最后是test

// 多态:由于继承和重写机制,相同类型的对象调用相同的方法,得到的结果可能不一样public static void main(String[] args) {// 创建学生对象student stu = new student();stu.setName("aa");stu.study();stu.eat();// 调用student类,所以是吃饭System.out.println(stu.age);// 创建大学生对象ustudent stu1 = new ustudent();stu1.setName("bb");System.out.println(stu.age);// 3.如果子类重写了父类的方法,则子类类型的对象会调用重写之后的方法stu1.study();stu1.eat();// 调用ustudent类 所以是在大学饭堂吃饭stu1.cet4();// 自动转型:子类对象的类型可以自动转成父类类型student stu2 = new ustudent();stu2.setName("cc");// 一个对象是调用父类的方法还是子类的方法,取决于对象本身的类型stu2.study();/*** 虽然转成了父类student类型 * 但是eat这个方法已经被子类ustudent改写了*  所以还是在大学饭堂吃饭*/stu2.eat();/*** 一个对象只能调用在其定义的类型及其父类中声明了的方法 * 一个类中的方法只能是这个类的对象及其子类对象去调用*/// 对于子类特有的属性和方法,只能是子类类型的对象才能调用// stu2.cet4();/*** 强制转型:将父类类型的对象强制转成子类类型*  可能会出现逻辑错误*/// UNStudent stu3 = (UNStudent)stu;// 这里对比下person dd = new student();dd.eat();//System.out.println(p1.age);person ee = new ustudent();ee.eat();//System.out.println(p1.age);}}

?

?

?

?

下面是监听器

首先,先引用一段关于java事件的的概述

?

?

? ? ? ? ?在Java开发中,对于事件的处理非常重要,比如响应键盘的输入、鼠标的点击、窗口的移动等等都要涉及到Java事件的应用。

? ? ? ? ?Java事件由事件类和监听接口组成,自定义一个事件前,必须提供一个事件的监听接口以及一个事件类。JAVA中监听接口是继承java.util.EventListener的,事件类继承java.util.EventObject。很多基本的事件系统已经为我们定义好了,我们只要学会调用即可,但是为了更加灵活地满足特定的需求,我们有时候也需要自定义事件。

?

?

? ? ? ? 监听器也叫Listener,是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。通过监听器,可以自动激

发一些操作。 ? ? ? 下面依旧用代码来体现,解释皆写在注释里面。

?

?

?

import javax.swing.JFrame;/** * 登陆窗口类 继承JFrame */public class jiemian extends JFrame {// 主函数内不要写过多内容public static void main(String args[]) {// 创建窗体对象jiemian j1 = new jiemian();j1.initjiemian();}/** * 初始化窗体方法 */public void initjiemian() {// this:指调用当前initjiemian()方法的一个对象this,也即j1/** * 与上次制作界面的区别在于,j1用了this在代替~ */this.setTitle("登录窗体");this.setSize(300, 200);// 设置布局java.awt.FlowLayout fl = new java.awt.FlowLayout();this.setLayout(fl);// 加组件javax.swing.JLabel nameLabel = new javax.swing.JLabel("帐号:");this.add(nameLabel);javax.swing.JTextField nameField = new javax.swing.JTextField(20);this.add(nameField);javax.swing.JButton loginBut = new javax.swing.JButton("登录");this.add(loginBut);javax.swing.JLabel msgLabel = new javax.swing.JLabel();this.add(msgLabel);// 设置点击关闭按钮的时候要退出程序this.setDefaultCloseOperation(3);// 将窗体显示在屏幕上this.setVisible(true);// 下面是本次的重点 监听器/** * 创建动作监听器对象 */jiantingqi l1 = new jiantingqi(nameField, msgLabel);/** * 给按钮装上监听器 */loginBut.addActionListener(l1);}}
?

下面是监听器的代码

主要是体现在账号的是否正确输入

正确的输入是aaa,会显示欢迎,否则会显示输入错误

代码如下

?

import java.awt.event.ActionEvent;/** * 登录的监听器,实现动作监听器接口 实现接口就必须将接口的方法全部实现 */public class jiantingqi implements java.awt.event.ActionListener {private javax.swing.JTextField jt;private javax.swing.JLabel mlabel;// 重载构造方法,要求在构造对象的时候必须传入输入框对象public jiantingqi(javax.swing.JTextField jt, javax.swing.JLabel mlabel) {this.jt = jt;this.mlabel = mlabel;}// 实现接口中的方法// 监听器中的方法是通过事件触发自动调用的public void actionPerformed(ActionEvent e) {// 获取帐号(获取帐号输入框中的数据)// 得到输入框中的字符串String name = jt.getText();if (name.equals("aaa")) {mlabel.setText("欢迎您!" + name);} else {mlabel.setText("");// 弹出提示框javax.swing.JOptionPane.showMessageDialog(null, "帐号或密码错误,请检查!");}}}
?

?

?

热点排行