接口是由常量和抽象方法(不实现)组成
语法格式
public interface 接口名{
//定义常量
public final static 数据类型 常量名="值";(注意常量名全是大写 而且在这里就得赋值)
//定义抽象方法
[public][abstract] 返回值类型 方法名();
}
实现接口方法
public class 类名 implements 接口名 [,接口名1,接口名2...]{
//重写接口中定义的方法
}
继承接口的方法
public interface 接口名 extends 接口名 [,接口名1,接口名2...]{
}
注意几点
接口是可以继承的 继承的是接口 并且可以多继承
接口不可以实例化对象 因此必须要被class实现一个类可以实现多个接口
接口的用途
接口编程 降低程序的耦合性
Spring 框架
接口和类得区别
定义的关键字不一样 接口是interface 类是class
接口中只含有常量和抽象方法 而类中可以用属性 方法和常量
接口不可以实例化对象 必须要被实类或者抽象类现 类可以实例化对象
接口可以多继承 类不可以多继承 但可以多层继承
抽象方法
语法格式
public abstract class 抽象类名{
//可以定义抽象方法
public abstract 返回值类型 方法名(参数列表{
}
//抽象方法还可以定义类中可以定义的一切东西
}
注意:
抽象类也可以实现接口 接口中的抽象方法随便实现不 因为抽象类本身也存在抽象方法
接口是一种特殊的类
而抽象类介于接口和类之间
还有注意凡是存在抽象方法的类是不可以实例化对象的所以一切抽象方法和接口都不可以势力化对象
事件的机制
事件源———>事件类型----->事件处理
| | |
| | |
发生 事件源 触发后
对象 有多个事件 处理
举例:
登录界面的登录按钮对象就是一个事件源
登录界面上的是一个动作事件 我们用 ActionListener动作监听器来监听登录按钮
然后用一个处理方法来实现监听后的处理这里是actionPreformad()方法
任务:
1.登录界面完善
2.定义一个画图形的抽象类,定义四个画图形的实现类,这些类继承自抽象类,分别是画直线的,画圆的,画矩形的。
3.接口,抽象类和事件机制总结
登录界面完善:
登录界面的完善这节课的任务是将登录按钮用事件机制进行处理
首先编写好一个大概的登录界面以后找到登录按钮对象
给其加载一个ActionListener动作监听器然后 将监听器的消息传递给LListener类的对象a
LListener类主要是用来处理监听消息
其参数列表是2个对象分别是文本输入框和密码输入框,LListener类实现ActionListener接口
重写其actionPreformad()方法再在方法中进行预期的处理
package net.java.t070901;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
/**
* 登录界面类
*
* @author 汤剑男
*/
public class Record {
/**
* 主函数
*/
public static void main(String[] args) {
// 实例化一Record的对象
Record re=new Record();
re.display();
}
public void display(){
/**
* 定义一个显示界面的方法
*/
javax.swing.JFrame jfr = new javax.swing.JFrame("qq登录");
jfr.setSize(300,200);// 设置窗体的大小为宽度是300高度是200
jfr.setResizable(false);// 设置窗体不可变大变小
jfr.setDefaultCloseOperation(2); // 关闭窗口即退出程序
jfr.setLocationRelativeTo(null);// 设置窗体居中显示
FlowLayout flt= new FlowLayout();// 设置一个窗体的布局为流量布局变量
jfr.setLayout(flt);
JLabel jlb = new JLabel("账号:");// 设置一个账号标签
jfr.add(jlb);
JTextField jtf=new JTextField(20);// 设置一个账号输入框
jfr.add(jtf);
JLabel jlb1 = new JLabel("密码:");// 设置一个密码标签
jfr.add(jlb1);
JPasswordField jpf = new JPasswordField(20);// 设置一个密码输入框
jfr.add(jpf);
JLabel jlb2= new JLabel("状态:");// 设置一个状态标签
jfr.add(jlb2);
String items[]={"在线","隐身"};
JComboBox jcb= new JComboBox(items);// 设置一个下拉框表
jfr.add(jcb);
JCheckBox jce=new JCheckBox("记住密码 ");// 设置一个记住密码的复选框
jfr.add(jce);
JCheckBox jce1=new JCheckBox("自动登录 ");// 设置一个自动登录的复选框
jfr.add(jce1);
JButton jb = new JButton("登录");// 设置一个登录的按钮
jfr.add(jb);
LListener a =new LListener(jtf,jpf);//实例化一个a对象接受监听器的消息并将文本输入框对象jtf和
//密码输入框对象jpf传递到类LListener中
jb.addActionListener(a);//给登录按钮对象设置一个动作监听器将监听到的消息传递给LListener类得a对象
jfr.setVisible(true);// 设置窗体可见
}
}
package net.java.t070901;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
/**
* 定义一个LListener实现类 用来实现ActionListener接口
* @author 汤剑男
*
*/
public class LListener implements ActionListener {
//定义2个对象类型的属性
private JTextField jtf;
private JPasswordField jpf;
//构造函数 接收传递的2个对象类型的参数
public LListener(JTextField jtf, JPasswordField jpf){
this.jtf=jtf;//赋值给当前对象
this.jpf=jpf;
}
public void actionPerformed(ActionEvent e) {
String a=this.jtf.getText();//将文本输入框的输入内容赋值给变量a
char b[]=this.jpf.getPassword();//将密码入框的输入内容赋值给数组b
String c=new String (b);//将b数组转化成字符串c
//判断变量a和c的内容是否与设置的一样 若一样输出指定内容不一样输出另一指定内容
if(a.equals("12345")&& c.equals("45678")){
JFrame jfr1=new JFrame("登录成功");//创建一个名字登陆成功的窗体
jfr1.setSize(300,200);//设置大小
jfr1.setResizable(false);// 设置窗体不可变大变小
jfr1.setDefaultCloseOperation(2);// 关闭窗口即退出程序
jfr1.setLocationRelativeTo(null);// 设置窗体居中显示
jfr1.setVisible(true);// 设置窗体可见
}
else{
JFrame jfr1=new JFrame("登录失败");//创建一个名字登陆失败的窗体
jfr1.setSize(300,200);//设置大小
jfr1.setResizable(false);// 设置窗体不可变大变小
jfr1.setDefaultCloseOperation(2);// 关闭窗口即退出程序
jfr1.setLocationRelativeTo(null);// 设置窗体居中显示
JLabel jla= new JLabel("你的密码或账号输入错误");// 设置一个标签
jfr1.add(jla);
jfr1.setVisible(true);// 设置窗体可见
}
}
}
2.定义一个画图形的抽象类,定义四个画图形的实现类,这些类继承自抽象类,分别是画直线的,画圆的,画矩形的。
首先定义一个抽象类draw里面包含有一个抽象方法draw
再编写3个类分别是drawline drawrect drawoval
以drawline为例子
首先要继承抽象类然后重写抽象方法draw在draw中
调用传递的Graphics类得对象g的drawline方法画直线
其他几个类似
package net.java.t070901;
import java.awt.Graphics;
/**
* 定义一个Draw抽象类
* @author 汤剑男
*
*/
public abstract class Draw {
//定义一个画图的方法
public abstract void draw(Graphics g, int x1, int y1, int x2, int y2);
}
package net.java.t070901;
import java.awt.Graphics;
/**
* 定义一个drawline类继承抽象类 draw
*
*/
public class DrawLine extends Draw {
//重写draw抽象类中的draw抽象方法
public void draw(Graphics g, int x1, int y1, int x2, int y2) {
//输出信息
System.out.println("画直线");
// 调用画直线的方法
g.drawLine(x1, y1, x2, y2);
}
}
package net.java.t070901;
import java.awt.Graphics;
/**
* 定义一个drawrect类继承抽象类 draw
*
*/
public class DrawRect extends Draw {
//重写draw抽象类中的draw抽象方法
public void draw(Graphics g, int x1, int y1, int x2, int y2) {
//输出信息
System.out.println("画矩形");
// 调用画直线的方法
g.drawRect(x1, y1, x2, y2);
}
}
package net.java.t070901;
import java.awt.Graphics;
/**
* 定义一个drawoval类继承抽象类 draw
*
*/
public class DrawOval extends Draw {
//重写draw抽象类中的draw抽象方法
public void draw(Graphics g, int x1, int y1, int x2, int y2) {
//输出信息
System.out.println("画圆形");
// 调用画直线的方法
g.drawOval(x1, y1, x2, y2);
}
}
- 大小: 16.7 KB
- 大小: 8 KB
- 大小: 10.5 KB
分享到:
相关推荐
3. 设置监听器:为控件添加点击事件或其他交互事件的监听器。 `onCreate()`方法执行完毕后,Activity进入可见状态,但可能并未完全显示在屏幕上,此时可能会调用`onStart()`和`onResume()`方法,使得Activity完全...
事件处理是JavaFX中的关键部分,通过监听器(Listener)和处理器(Handler)可以响应用户的交互。在"Clock"工程中,可能会有更新时间的定时器(Timer)和对应的事件处理逻辑,确保时钟能准确无误地显示当前时间。 ...
实体监听器(Entity Listeners)是JPA 2.0的新特性,可以定义一组回调方法,在实体生命周期的不同阶段(如加载、保存、更新、删除等)自动调用。这使得开发者可以在不修改实体类代码的情况下,添加额外的业务逻辑。...
`addEventListener`方法用于添加事件监听器,`removeEventListener`用于移除。 6. **DOM操作** Document Object Model(DOM)是HTML和XML文档的结构化表示。JavaScript通过DOM API可以操作网页元素,如添加、删除...
2. 学习Oracle 12c的核心服务,如监听器、数据库实例、数据库进程等,以及它们的作用。 3. 熟悉SQL Plus、SQL Developer等数据库管理工具的基本操作,这些工具用于执行SQL语句、管理数据库对象和进行开发工作。 ...
6. **部署描述符(web.xml)**:这是JavaEE Web应用的配置文件,定义了Servlet、过滤器、监听器等组件及其行为。 7. **WAR文件**:JavaEE Web应用被打包成WAR(Web ARchive)文件进行部署,"HelloWorld1"项目可能...
为了响应用户的滑动操作,需要在Activity中添加监听器。例如,可以添加`OnSlideListener`来监听滑动状态的变化: ```java slidingMenu.setOnSlideListener(new SlidingMenu.OnSlideListener() { @Override public...
- 侦听器:通过`watch`对象监听数据变化并执行相应逻辑。 6. **过滤器与插槽**: - 过滤器:自定义数据格式化,如`| capitalize`将字符串首字母大写。 - 插槽:用于组件的内容分发,提供定制化的组件内容结构。 ...
4. **交互逻辑**:在Activity类中,开发者会添加按钮点击事件监听器,实现用户交互。例如,当用户点击按钮时,可能会弹出一个对话框或启动另一个Activity。 5. **运行应用**:最后,开发者会在模拟器或真实设备上...
通过`LocalDevice.getDiscoveryAgent()`获取DiscoveryAgent实例,然后可以调用`startInquiry(int inquiryMode, DiscoveryListener listener)`方法来启动设备搜索,并传入一个DiscoveryListener监听器以接收搜索结果...
2. **Broadcast Receiver**:广播接收器是一种用于监听系统或应用程序广播事件的组件。例如,当设备电量低时,广播接收器可以接收到电量警告,并触发相应的操作,如提醒用户充电。 3. **Service**:服务是在后台...
重写`onPageScrolled(int position, float positionOffset, int positionOffsetPixels)`、`onPageSelected(int position)`和`onPageScrollStateChanged(int state)`方法来监听滑动事件,实现个性化的滑动过渡效果。...
- **LayoutManager**:布局管理器决定了视图如何在RecycleView中排列,如线性布局(LinearLayoutManager)、网格布局(GridLayoutManager)或瀑布流布局(StaggeredGridLayoutManager)。 - **Adapter**:适配器是...
接着,我们需要在资源编辑器中添加一个新的对话框资源,这将成为我们的播放器界面。在对话框上放置一个通用控件(Ctrl+U),然后将其Class属性设置为"WMPlayer.OCX",ID可以自定义。这样就添加了Windows Media ...
3. LayoutManager:布局管理器负责决定如何在屏幕上布局Item视图,常见的LayoutManager有LinearLayoutManager(线性布局)、GridLayoutManager(网格布局)和StaggeredGridLayoutManager(瀑布流布局)。 二、...
【Cocos Creator 联机实战教程(1)】——初识Socket.io 是一个针对游戏开发者,特别是使用Cocos Creator的开发者的系列教程。本教程旨在帮助他们掌握如何利用Socket.io实现在Cocos Creator游戏中的实时通信功能,这...
- **支持扩展和自定义**:允许用户自定义方法、监听器和关键字,还可以导入外部jar包,以满足复杂测试需求。 - **频繁更新**:Katalon Studio保持每月更新,持续改进和增加新功能,确保用户能够享受到最新的技术...
本文将深入探讨JavaScript中DOM的操作。 首先,了解DOM的基础结构非常关键。文档中的每个元素、文本...在实际开发过程中,需要根据具体的应用场景选择合适的DOM操作方法和事件监听器,以实现更加丰富和流畅的Web应用。
【Spring Boot框架初识与快速入门】 Spring Boot是一款由Pivotal团队开发的框架,旨在简化Spring应用的初始搭建以及开发过程。它采用"约定优于配置"的理念,减少了大量传统Spring应用所需的XML配置,使开发者能更...