间歇性混吃等死,持续性踌躇满志系列-------------第18天
1、飞机游戏小项目
①创建窗口
1 package cn.xfj.game; 2 3 import javax.swing.*; 4 import java.awt.event.WindowAdapter; 5 import java.awt.event.WindowEvent; 6 7 //飞机游戏的主窗口 8 public class MyGameFrame extends JFrame { 9 //初始化窗口 10 public void launchFrame() { 11 this.setTitle("My first game"); 12 this.setVisible(true); 13 this.setSize(500,500); 14 this.setLocation(200,200); 15 16 this.addWindowListener(new WindowAdapter(){ 17 public void windowCloing(WindowEvent e){ 18 System.exit(0); 19 } 20 }); 21 } 22 23 public static void main(String[] args) { 24 MyGameFrame f = new MyGameFrame(); 25 f.launchFrame(); 26 } 27 }
运行结果图
② 图形和文本绘制
super.paint(g); // 调用父类的paint方法或调用下面的方法直接绘制组件
注:这个位置不加super调用会出现窗体显示不正常。
2、抽象方法和抽象方法
抽象方法:使用abstract修饰的方法,没有方法体,只有声明。定义的是一种“规范”,就是告诉子类必须要给抽象方法提供具体的实现。
抽象类:包含抽象方法的类就是抽象类。通过abstract方法定义规范,然后要求子类必须定义具体实现。通过抽象类,我们可以做到严格限制子类的设计,使子类之间更加通用。
1 package cn.zh.abstrac; 2 3 //抽象类 4 abstract class Animal{ 5 //抽象方法 6 abstract public void shout(); 7 } 8 class Dog extends Animal{ 9 //子类必须实现父类的抽象方法,否则编译错误 10 public void shout(){ 11 System.out.println("www..."); 12 } 13 public void seeDoor(){ 14 System.out.println("seedoor..."); 15 } 16 } 17 //测试抽象类 18 public class TestAbstractClasss { 19 public static void main(String[] args) { 20 Dog g = new Dog(); 21 g.shout(); 22 g.seeDoor(); 23 } 24 }
运行结果图
抽象类的使用要点:①有抽象方法的类智能定义成抽象类②抽象类不能被实例化,即不能用new来实例化抽象类。③抽象类可以包含属性、方法、构造方法。但是只能用来被子类调用④抽象类智能用来被继承⑤抽象方法必须被子类实现。