会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 133908个问题

1.遇到的问题:

if(this.age<man.age())和if(this.age>man.age())这两行代码在man.age()那里报错,提示
Method call expected不知道问题出在哪边,我在成员变量前加个private然后用man.getAge()就
没问题.

2.代码区
package it.bzcxy;

import java.util.Arrays;

/*
对某个类的对象之间做比较,就需要实现Comparable 接口。接口中只有一个方法 compareTo,这个方法定义了对象之间的比较规则。
依据这个“比较规则”,我们就能对 所有对象实现排序。方法中,将当前对象和obj这个对象进行比较,如果大于返回1,等于返回 0,
小于返 回-1.等于返回0。集合中的元素两两进行比较,通过正数和负数决定谁前谁后,也就是升序降序
 */
public class DemoComparable {
    public static void main(String[] args) {
        //静态初始化不可以拆分写法
        ComparableMan[] man = {new ComparableMan("陈X", 22),
                new ComparableMan("陈X祥", 55),
                new ComparableMan("孙X琴", 54),
                new ComparableMan("陈X慧", 30)
        };
        Arrays.sort(man);//对数组进行排序,根据compareTO重写的比较规则进行排序
        System.out.println(Arrays.toString(man));
    }
}

class ComparableMan implements Comparable{
      String name;
      int age;

     //重写compare接口compareTo的比较规则,对对象进行排序
    @Override
    public int compareTo(Object o) {
        ComparableMan man=(ComparableMan)o;
        if(this.age<man.age()){
            return -1;
        }
        if(this.age>man.age()){
            return 1;
        }
        return 0;
    }

    @Override
    public String toString() {
        //重写toString方法打印对象的姓名属性
        return this.name;
    }

    public ComparableMan(){};

    public ComparableMan(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

报错截图:

image.png

JAVA 全系列/第一阶段:AI驱动的JAVA编程/数组和数据存储 361楼

问题:图片一直加载不出来,是因为JDK版本的原因吗

package com.bjsxt.plane;

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

/**
 * 游戏主窗口
 */
public class MyGameFrame extends Frame {

    Image  plane = GameUtil.getImage("images/plane.png");
    Image  bg = GameUtil.getImage("images/bg.jpg");

    @Override
    public void paint(Graphics g) {     //g当做是一支画笔

        g.drawImage(bg,0,0,500,500,null);
        g.drawImage(plane,100,100,22,33,null);

    }

    //初始化窗口
    public void launchFrame(){
        this.setTitle("飞机大战-尚学堂");
        setVisible(true);   //窗口是否可见

        setSize(500,500);   //窗口大小

        setLocation(400,400);       //窗口打开的位置

        //增加关闭窗口的动作
        this.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);     //正常退出程序
            }
        });

    }

    public static void main(String[] args) {
        MyGameFrame  gameFrame = new MyGameFrame();
        gameFrame.launchFrame();
    }



}
package com.bjsxt.plane;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;

/**
 * 游戏的工具类
 */
public class GameUtil {

    //构造器私有。防止别人创建本类的对象.
    private GameUtil(){
    }

    public static Image getImage(String path) {     //images/plane.png
        BufferedImage img = null;
        URL u = GameUtil.class.getClassLoader().getResource(path);
        try {
            img = ImageIO.read(u);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return img;
    }

    public static void main(String[] args) {
        Image img = GameUtil.getImage("images/plane.png");
        System.out.println(img);
    }


}

截图:图片.png

JAVA 全系列/第一阶段:AI驱动的JAVA编程/飞机大战小项目训练 364楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/飞机大战小项目训练 365楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/JAVA入门和背景知识 366楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/变量、数据类型、运算符 367楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/变量、数据类型、运算符 369楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/变量、数据类型、运算符 370楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/面向对象详解和JVM底层内存分析 371楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/变量、数据类型、运算符 372楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/数组和数据存储 375楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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