会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132428个问题
JAVA 全系列/第一阶段:JAVA 快速入门/飞机大战小项目训练 1246楼
JAVA 全系列/第一阶段:JAVA 快速入门/控制语句、方法、递归算法 1247楼
JAVA 全系列/第一阶段:JAVA 快速入门/IDEA的使用和第一个java项目 1248楼

屏幕截图 2023-03-09 210546.png

,为什么我的这个大三他是跟大四是一起被执行出来的呢?

JAVA 全系列/第一阶段:JAVA 快速入门/控制语句、方法、递归算法 1249楼
JAVA 全系列/第一阶段:JAVA 快速入门/变量、数据类型、运算符 1250楼

问题和BUG:

        飞机死了以后,还在一直进行碰撞检测,而且还有爆炸的效果伴随,想了半天也不知道怎么解决;请问老师,这个问题该怎么解决?

核心代码:

 public void paint(Graphics g) {
  // TODO Auto-generated method stub
  super.paint(g);//如果画出来的窗口是黑色的,请加上此行代码;
  count++;
  g.drawImage(bg, 0, 0, null);   //画出背景
  
  
   plane2.drawSelf(g);   
  
  
  for(int a=0;a<shells.length;a++) {
   Color c = g.getColor();
   shells[a].drawSelf(g);//将所有Shell对象全部画出来,利用 for循环
   
   //检测每个shell对象有没有和plane对象相交
   
   boolean intersect=shells[a].getRect().intersects(plane2.getRect());    
    if(intersect) {  //判断是否相交
     
     System.out.println("相交了............");
     plane2.live=false;  //相交了,则表示飞机死了
     intersect =false;
     if(explode==null) { // 如爆炸对象是null,则创建爆炸对象
      explode = new Explode(plane2.x,plane2.y);
      endTime = new Date();  // 飞机死的时候则时间结束    
      period = (endTime.getTime()-startTime.getTime())/1000;
     }
     explode.draw(g); //画出爆炸对象    
    }
    //计算时间,给出游戏提示
    if(!plane2.live) { //飞机死了,则打印游戏时长
     g.setColor(Color.red); //设置字体颜色
     Font  f= new Font("宋体",Font.BOLD,30);
     g.setFont(f);
     g.drawString("时间:"+period+"秒", Constant.GAME_WIGTH/2-100,
       Constant.GAME_HEIGHT/2); //画出所玩游戏时长    
    }
    g.setColor(c); 
  }
 }

源码如下:

MyPlaneGame.zip


JAVA 全系列/第一阶段:JAVA 快速入门/飞机大战小项目训练 1251楼
JAVA 全系列/第一阶段:JAVA 快速入门/控制语句、方法、递归算法 1252楼
JAVA 全系列/第一阶段:JAVA 快速入门/面向对象详解和JVM底层内存分析 1254楼
JAVA 全系列/第一阶段:JAVA 快速入门/变量、数据类型、运算符 1256楼

.1请问方法重写之后,我该如何能够自由的调用重写前重写后的结果呢?

public  class Person {    //定义出来Person的属性成员
    String name;
    int heigth;

    public void rest1(){
        System.out.println("啦啦啦,宿舍休息");
    }
}
 class Student extends Person{        //Student类继承父类Person所有的属性    Person拓展自Object的类
       int score;
       public void study(){
           System.out.println("正在学习"+this.name);
       }
       Student(String name, int height,int score){     //有参构造器,无参的自动删除
        this.name =name;
        this.score = score;
        this.heigth = height;
       }
       public void rest(){
           System.out.println("回宿舍睡觉");
       }



class Employee extends Person{
    public   void rest(){   //重写后的rest方法
        System.out.println("办公区休息一下");     /*继承了Person类,但是rest方法重写了,重写又叫做覆盖
                                            ,能用,但是是新的重写*/
    }
}
     public static void main(String[] args) {
         Student s = new Student("程成",15,55);  //直接定义属性
         s.study();
         s.rest();
         System.out.println(s instanceof Person);   //instanceof 的作用:测试该类是否属于其测试类的子类
         System.out.println(s instanceof Student);      //instanceof 测试其从属类
         System.out.println(s instanceof Object);     //重写调用重写后的方法,没有重写调用父类的方法
         s.rest1();
         

     }
 }

就是比如说,我怎么让显示结果出来”回宿舍睡觉“与”办公室休息一下“这两个结果呢?


JAVA 全系列/第一阶段:JAVA 快速入门/面向对象详解和JVM底层内存分析 1257楼
JAVA 全系列/第一阶段:JAVA 快速入门/数组和数据存储 1260楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637