www.itbaizhan.cn
老师 点击这个没办法下载
飞机大战.zip
老师飞机不见了
public Man(int age, String name) { 16 super(); 17 this.age = age; 18 this.name = name; 19 } 20
这个super()调用的是Object的构造器吗
老师,上课的时候代码好像并没有说要用super,在没有使用super的时候运行会报下面的错:
这是为什么啊?
视频是多久更新一次呢,现在2021年了,这个视频还是2020年的
关于视频中最后的实时效果反馈中c的值是不是有误,应该是:较小的数,而不是"较小的数",所以是不是那道题选项中没有正确答案
问题点:为啥还要判断呢?直接强制转成String,不就可以获得首个字符串吗?
代码一:
package com.sxt.encapsulation2; public class TestCasting3 { public static void main(String[] args){ Object obj = new String("北京尚学堂"); if(obj instanceof String){ String str = (String)obj; System.out.println(str.charAt(0)); }else if(obj instanceof StringBuffer){ StringB uffer str = (StringBuffer) obj; System.out.println(str.charAt(0)); } }
代码二:
package com.sxt.encapsulation2; public class TestCasting3 { public static void main(String[] args){ Object obj = new String("北京尚学堂"); /* if(obj instanceof String){ String str = (String)obj; System.out.println(str.charAt(0)); }else if(obj instanceof StringBuffer){ StringBuffer str = (StringBuffer) obj; System.out.println(str.charAt(0)); }*/ String str = (String)obj; System.out.println(str.charAt(0)); } }
爆爆炸效果报错,请帮我指点?
PlayGame0.10.rar
整个项目已补充 上传。谢谢
package com.bjsxt.test4; public class people { int id; int pwd; String name; void rest(){ System.out.println("people.rest"); } void study(){ System.out.println("people.study"); } people(){ System.out.println("好好学习"); } @Override public String toString() { return id + name + pwd; } public int getId() { return id; } public void setId(int id) { this.id = id; } public int getPwd() { return pwd; } public void setPwd(int pwd) { this.pwd = pwd; } public String getName() { return name; } public void setName(String name) { this.name = name; } static void restst(people p){ p.rest(); } } class student extends people{ student(int id,int pwd,String name){ this.id=id; this.name=name; this.pwd=pwd; } public student() { System.out.println("好好玩"); } public void rest(){ super.rest(); System.out.println("休息"); } public static void main(String[] args) { student s=new student(1991,123,"杨洋"); new student(); s.study(); // s.rest(); s.setName("邓秀红"); // System.out.println(s.name); System.out.println(s.toString()); System.out.println(s.getName()); restst(s); restst(new teacher()); } } class teacher extends people{ teacher(){} void rest() { System.out.println("回家"); } }
老师,为什么在调用rest(new teacher())方法中,会调用study()方法,而,我的多态里只有一个rest()方法
PlaneGame0.1中可以调出正常窗口。
package cn.lss.Game; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax.swing.WindowConstants; /** * 飞机游戏的主窗口 * @author 李帅帅 * */ public class MyGameFrame extends JFrame{ /** * 初始化窗口 */ public void launchFrame() { this.setTitle("尚学堂学员_李帅帅作品"); this.setVisible(true); this.setSize(400,400); this.setLocation(300, 300); this.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); } public static void main(String[]args) { MyGameFrame f = new MyGameFrame(); f.launchFrame(); } }
PlaneGame0.2中调出的窗口黑色的
package cn.lss.Game; import java.awt.Graphics; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax.swing.WindowConstants; /** * 飞机游戏的主窗口 * @author 李帅帅 * */ public class MyGameFrame extends JFrame{ @Override public void paint(Graphics g) {//自动被调用。g相当于一支画笔 } /** * 初始化窗口 */ public void launchFrame() { this.setTitle("尚学堂学员_李帅帅作品"); this.setVisible(true); this.setSize(400,400); this.setLocation(300, 300); this.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); } public static void main(String[]args) { MyGameFrame f = new MyGameFrame(); f.launchFrame(); } }
老师好,麻烦看下24,25行。
if(x < 0 + 10 || x > Constant.GAME_WIDTH - width - 10) {degree = Math.PI - degree;} if(y < 0 + 30 || y > Constant.GAME_HEIGHT - height - 10) {degree = - degree;}
Constant.GAME_WIDTH 和Constant.GAME_HEIGHT 都是600。如果小球运行到窗口最右边,那么需要变换角度。这个最右边的判断使用:小球右上角坐标x > 窗口宽度 - 小球直径 就可以了。但是我运行后发现还是会出边界一点点。然后我就减去10(如24行 x > Constant.GAME_WIDTH - width - 10 ),发现可以了。这是为什么?
Project_PlaneWars.zip
看一下这个爆炸效果为啥不出来
代码区:
package sxt.game; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Image; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; /** * 飞机游戏的主窗口 * @author Administrator * */ public class MyGameFrame extends JFrame { Image plane=GameUtil.getImage("images/plane.png"); Image bg=GameUtil.getImage("images/pg.jpg"); @Override public void paint(Graphics g) { //paint方法是窗口类的主方法 自动被调用, g相当于一支画笔 g.drawImage(bg, 0, 0, null); g.drawImage(plane, 250, 250, null); } /** * 初始化窗口 */ public void launchFrame() { //加载窗口的方法 this.setTitle("尚学堂学员-张艳一作品"); this.setSize(500,500); this.setLocation(300,300); this.setVisible(true); //窗口可视 this.addWindowListener(new WindowAdapter() { //匿名内部类 @Override public void windowClosing(WindowEvent e) { //重写父类的一个方法 System.exit(0); //结束虚拟机运行,0表示正常结束,如果是负数,表示有异常结束 } }); } public static void main(String[]args) { //写主方法开始执行,main方法是程序执行的入口 MyGameFrame f=new MyGameFrame(); //new一个MyGameFrame对象并命名为f f.launchFrame(); //调用上面那个launchFrame这个方法 } }
package sxt.game; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.IOException; import java.net.URL; import javax.imageio.ImageIO; public class GameUtil { // 工具类最好将构造器私有化。 private GameUtil() { } /** * 返回指定路径文件的图片对象 * @param path * @return */ public static Image getImage(String path) { BufferedImage bi = null; try { URL u = GameUtil.class.getClassLoader().getResource(path); bi = ImageIO.read(u); } catch (IOException e) { e.printStackTrace(); } return bi; } }
运行区:
问题:怎么这么多错误,是哪里错了?
为什么重写equals();方法后t1和t2的toString();方法打印值一样了。改变属性值后又变了。
没重写equals()时
重写之后
改变属性值后
编译出错误: 不兼容的类型
编译器检测到x+1是int类型,int类型在不超范围的情况下,不是可以直接赋值给byte类型的变量吗?x+1是101赋值给x 没超出byte的范围呀,为什么还是编译出错?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637