【代码2】 //定义一个构造方法,参数为name,用name初始化成员变量userName 【代码3】 //定义一个构造方法的头部,参数为name和pwd {
【代码4】 // 调用上个构造方法初始化userName 【代码5】 //初始化成员变量password check(); }
void check() { String s=null; if (userName!=null) s=\用户名:\else
s=\用户名不能为空!\if (password!=\s=s+\口令无效!\else
s=s+\口令:********\System.out.println(s); } }
public class RunDemo {
public static void main(String[] args) { new User(); new User(\刘新宇\new User(null,\邵丽萍\new User(\张驰\} }
(2)编译并运行程序
(四)实现 MouseListener 和 MouseMotionListener 两个接口
(1)编写实现接口的程序文件 Interface.java,源代码如下。 import java.applet.Applet; import java.awt.*;
import java.awt.event.*;
【代码1】 //定义一个实现接口MouseListener, MouseMotionListener 并继承Applet的一个类的头部,类名为Interface {
int x1, y1, x2, y2;
public void init() {
addMouseListener(this);
addMouseMotionListener(this); }
public void paint(Graphics g) {
【代码2】//画一条直线
}
public void mousePressed(MouseEvent e) { // 记录起点坐标 x1=e.getX(); y1=e.getY(); }
public void mouseClicked(MouseEvent e) {} public void mouseEntered(MouseEvent e) {} public void mouseExited(MouseEvent e) {} public void mouseReleased(MouseEvent e) {} public void mouseMoved(MouseEvent e) {}
public void mouseDragged(MouseEvent e) { // 记录终点坐标 x2=e.getX(); y2=e.getY(); repaint(); }
} ? 编译 Interface.java 文件。 ? 编写 Interface.html 文件,源代码如下。
(5)在浏览器中打开 Interface.html 文件,在窗口中拖动鼠标可以随意画出一条线
四、运行结果
五、思考题
1. 使用变量之前是不是都要先声明变量。使用变量之前是不是都要先赋值,为什么?
使用之前必须先声明,因为声明了,运行时计算机才能划分计算机空间给他。根据变量不同,或者在堆里,或者在栈里。但是没有声明的话,连存在的空间都没有,那么读写也就无从谈起。不是必须先赋值,因为会自动赋默认值。 2. 什么是构造方法。
构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。 3. 类的继承和多态有什么作用,在使用上应该注意什么问题。
继承就是子类继承父类,使子类具有父类的各种属性和方法,好处就是避免多余的代码出现,例如,项目中常常要用到的数据库的开启关闭,就可以单独写一个父类,其他类要用的话可以去继承。。。
多态就是一个接口,使用不同的实例去执行不同的操作,好处就是增强程序的可扩展性及可维护性,使代码更简洁
六、总结
通过这次编程和上机实验理解了 Java 语言的继承和多态特性,掌握了变量的隐藏、方法的覆盖、重载,掌握抽象类和接口的使用。对于Java语言有了更深一层的认识,多态与继承、方法重写密切相关,我们在方法中接收父类类型作为参数,在方法实现中调用父类类型的各种方法。当把子类作为参数传递给这个方法时,java虚拟机会根据实际创建的对象类型,调用子类中相应的方法。
相关推荐: