本周学习了抽象类和接口、swing界面编程和事件处理机制,故而写一遍总结,作为对之前学习的知识的梳理和复习。
抽象类:
抽象类是一个通过抽取N个类之间的共性而组成的一个类,它只能作为其他类的父类,不能直接实例化使用。编写一个计算多边形面积和周长的类,首先可以创建一个抽象的父类(它拥有基本的属性和方法)
public abstract class Shape {
String name;
abstract double getPerimeter();//计算周长的抽象方法
abstract double getArea();//计算面积的抽象方法
}
然后可以创建一个具体形状的类来继承上面的抽象类,如圆形、矩形、三角形
下面创建一个圆形为普通类
public class Circle extends Shape{
double radius;
public Circle(double radius) {
this.radius = radius;
}
double getPerimeter() {
return 3.14 * 2 * radius;
}eaxewdss
double getArea() {
return 3.14 * radius * radius;
}
}
创建主方法调用
public static void main(String[] args) {
Shape circle = new Circle("5号圆" , 5.0);
System.out.println(circle.name + "的周长为:" + circle.getPerimeter());
System.out.println(circle.name + "的面积为:" + circle.getArea());
}
简单来说抽象类不一定要有抽象方法,但是有抽象方法的类就一定是抽象类, 在Java中,使用关键字abstract来表示抽象。
用abstract修饰类,则声明该类为抽象类,不允许创建实例。
用abstract修饰方法,则声明该方法为抽象方法,不允许有方法体。
接口
接口的用interface关键字来声明:interface 接口名称{ //接口体}
接口的属性必须全部是常量,并且方法也必须全部是抽象方法
接口使用implements来实现:Class 类名 implements 接口名{//类定义体}
接口和抽象方法的区别:
实现接口的类必须全部实现接口抽象方法
一个类可以实现多个接口。
swing界面编程
swing由javax.swing包提供。
常见的swing组件
JFrame 窗口
JLabel 标签,可以表示文本和图像
JTextField 文本框
JPasswordField 密码框
JRadioButton 单选按钮
JCheckBox 多选框
JPanel 面板
JComboBox 下拉框
JTextArea 多行文本框
JButton 按钮
JScrollPane 带滚动条的面板
从功能上分为:容器和基本组件;容器又分为顶层容器和中间层容器。
顶层容器:JFrame、JDialog、JApplet 。用于构造图形用户界面的窗口,并容纳其它容器和组件,它们可以独立存在 。
中间层容器 :JPanel、JScrollPane、JToolBar等。容纳其它组件,但是不能独立存在,需要添加到其它容器中。通常用来按功能组织基本组件 。
基本组件:按钮JButton、文本框JTextField等等。是图形用户界面的基本组成单位,不能独立存在,必须将其添加到一定的容器中。
事件处理机制
事件处理:在Java语言中,当用户与(GUI组件交互时,GUI组件能够激发一个相应事件。Java提供完善的事件处理机制,能够监听事件,识别事件源,并完成事件处理。 所有的事件类和监听器接口都是在 java.awt.event包中
常见的事件
ActionEvent 动作事件 【鼠标点击了按钮、鼠标选择了菜单】
MouseEvent 鼠标事件【鼠标按下、鼠标松开、鼠标点击、光标进入、光标离开、光标移动、光标拖拽】
KeyEvent 键盘事件 【键盘按键按下、键盘按键松开、键盘输入】
对应的事件监听器:
ActionListener 动作监听器
MouseListener 鼠标监听器
KeyListener 键盘监听器