扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
public class Plane{
主要从事网页设计、PC网站建设(电脑版网站建设)、wap网站建设(手机版网站建设)、自适应网站建设、程序开发、微网站、重庆小程序开发公司等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了丰富的成都网站设计、做网站、成都外贸网站建设公司、网络营销经验,集策划、开发、设计、营销、管理等多方位专业化运作于一体,具备承接不同规模与类型的建设项目的能力。
public static void main(String[] args){
System.out.print("飞机正在起飞.请稍后......");
System.out.print("情况紧急,飞机没油了,请加油.......");
System.out.print("你的飞机坠落了,大战结束.......");
}
}
上面的class文件为游戏的主体代码,继承SurfaceView这个类并且实现SurfaceHolder的回调方法,简单一点说就是根据游戏需要画图并显示到屏幕。
public void handleMessage(Message m) {}应该是一个接受消息的方法
里面的判断都是根据你下面定义的静态常量的状态来匹配的,下面那个class PlaneGame类定义了一些静态常量。
class KeyGameEvent 类主要是控制触屏或者说按键的
估计这个代码不全,按照提示应该可以这样解决:
在Hoofan的类中加上以下代码:
private static final long serialVersionUID = 1L;
@Override
public void mouseDragged(MouseEvent e)
{
// TODO Auto-generated method stub
}
@Override
public void mouseMoved(MouseEvent e)
{
// TODO Auto-generated method stub
}
第一个题目是不是少了点什么信息,这么写出类来好像没什么意义啊,连个动作都没执行!我这里是按照题目的要求写的代码,一共是2个文件。
package baidu;
/**
* 文件名:Engine.java
* @author
* @version 1.0,创建时间:2012-4-15 下午06:44:18
* @since jdk1.6
* 引擎类,它有一个引擎类型的属性type,
* 其值可能为喷气引擎(whiff)或螺旋桨引擎(airscrew),
*/
public class Engine
{
//一个飞机引擎的私有属性,因为引擎的可能性只有两种,为了限制可能性,所以此处使用枚举类型
private enum type{whiff,airscrew};
}
package baidu;
/**
* 文件名:Airplane.java
* @author
* @version 1.0,创建时间:2012-4-15 下午06:43:30
* @since jdk1.6
* 飞机类,最基础的类。它有1~4个引擎
*/
public class Airplane
{
//飞机的4个引擎,此处分别命名为engine1~4
private Engine engine1;
private Engine engine2;
private Engine engine3;
private Engine engine4;
/**
* 主函数中来执行操作*/
public static void main(String[] args)
{
//定义初始化两个对象喷气式飞机(jet)和螺旋桨飞机(PDAirplane)
Airplane jetAirplane = new Airplane();
Airplane PDAirplane = new Airplane();
}
}
第二题还好,只是有个问题:java里面的接口明明比抽象类好用,扩展性也更好,为什呢不用接口呢?所以我只能说你出了2个题目都是莫名其妙的。下面是我按照题目写的代码,有3个文件,分别代码图形、长方形、三角形:
package baidu;
/**
* 文件名:Polygon.java
* @version 1.0,创建时间:2012-4-15 下午06:54:50
* @since jdk1.6
* 抽象类,代表一个图形,当做是接口处理吧,子类要实现的接口就是getArea()方法。
*/
public abstract class Polygon
{
//该图形的面积
protected double area;
//这里声明方法,不定义
public abstract void getArea();
/**
* 这里弄几个测试用例来测试一下
* @param args
*/
public static void main(String[] args)
{
Polygon changfangPolygon = new Rectangle(10, 10.5);
changfangPolygon.getArea();
Polygon sanjiaopPolygon = new Triangle(4, 5, 3);
sanjiaopPolygon.getArea();
}
}
package baidu;
/**
* 文件名:Rectangle.java
* @version 1.0,创建时间:2012-4-15 下午06:57:27
* @since jdk1.6
* 矩形类,继承了图形类的方法和接口。
*/
public class Rectangle extends Polygon
{
//长方形的长度和宽度
private double length;
private double width;
/**
* 构造方法,用长度和宽度来初始化这个长方形
* @param len 长方形的长度
* @param width 长方形的宽度
*/
public Rectangle(double len,double width)
{
//为了防止输入的数据有负数什么的,要把他们都转成正数
this.length = Math.abs(len);
this.width = Math.abs(width);
}
/**重写父类的方法,计算出面积,输出结果到控制台*/
@Override
public void getArea()
{
/*这里面是使用了父类的area属性,通过protected继承了下来*/
area = this.length*this.width;
System.out.println("长方形【长度:"+this.length+",宽度:"+this.width+"】,面积:"+area);
}
}
package baidu;
/**
* 文件名:Triangle.java
* @version 1.0,创建时间:2012-4-15 下午07:11:09
* @since jdk1.6
* 三角形类,继承了图形类的方法
*/
public class Triangle extends Polygon
{
/**三角形的三边,分别命名为abc好了,随便*/
private double edgeA;
private double edgeB;
private double edgeC;
/**
* 三角形的构造函数,首先验证输入的数据是否合法才初始化
* @param a
* @param b
* @param c
*/
public Triangle(double a,double b,double c)
{
/*临时变量,存储输入的abc三条边*/
double aa ,bb ,cc;
//是否是三角形的判断
boolean isTriangle;
//先保证三条边都是正数,使用取绝对值的方法
aa = Math.abs(a);
bb = Math.abs(b);
cc = Math.abs(c);
//验证两边之和是否大于第三边
isTriangle = (aa+bbcc)(bb+ccaa)(aa+ccbb);
if(!isTriangle)
{
System.out.println("您输入的三边有错误,两边之和大于第三边!");
this.edgeA = 0;
this.edgeB = 0;
this.edgeC = 0;
return ;
}
this.edgeA = aa;
this.edgeB = bb;
this.edgeC = cc;
}
/* (non-Javadoc)
* @see baidu.Polygon#getArea()
* 重载父类的方法,计算出图形的面积,并且输出到控制台
* 三角形的面积计算公式
* (海伦公式)(p=(a+b+c)/2)
S=√[p(p-a)(p-b)(p-c)]
*/
@Override
public void getArea()
{
double p;
p =(this.edgeA+this.edgeB+this.edgeC)/2;
area = Math.sqrt(p*(p-edgeA)*(p-edgeB)*(p-edgeC));
System.out.println("三角形【长度:"+this.edgeA+","+this.edgeB+","+this.edgeC+"】,面积:"+area);
}
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流