为什么重画窗口的代码要使用多线程方法呢?
我自己试了一下
如果直接将repaint方法写在launchFrame()方法里,也能正常运行
所以我想知道用多线程思路处理重画窗口的必要性
老师,有疑问:
红框处,用super调用父类的成员变量,结果不应该是0吗?
使用while循环输出1-1000之间能被5整除的数,且每行输出3个
为什么没有执行呢?老师
//用while循环输出1-1000之间能被5整除的数,且每行输出3个 int c = 0; int j = 1; while(j <= 1000) { if(j%5 == 0) { System.out.print(j+"\t"); j++; c++; } if(c==3) { System.out.println(); c = 0; } }
MyGame1.0.zip
老师,帮我看看我设置了炮弹的数组,数量有20个,总是出现这几个炮弹,然后我一个一个初始化,一个一个调用draw方法,还是只出现这几个球,这是为什么呢?
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
出现这个提示
老师,在cmd中显示jdk version为9,但是下面jre和jvm显示的是9+11mix
但是我的JAVA_HOME已经设置为11的bin路径了哎
老师您好,请问x,y为什么要定义成Double型?然后用的时候再转成整型。为什么不直接定义成整形呢?
请问老师为什么我的代码中的user就是错的呢。。。。
老师,怎样访问不同包中的非public类?
视屏最后创建一个无参的构造方法干嘛用的啊?
/** * 游戏物体的父类 * @author 王亮 * */ public class GameObject { Image img; double x,y; int speed; int width,height; public void drawSelf(Graphics g){ g.drawImage(img, (int)x, (int)y,null); } public GameObject(Image img, double x, double y, int speed, int width, int height) { super(); this.img = img; this.x = x; this.y = y; this.speed = speed; this.width = width; this.height = height; } public GameObject(Image img, double x, double y) { super(); this.img = img; this.x = x; this.y = y; } public GameObject() {//这个方法干嘛用的,可以不创建吗? } }
老师,static修饰的静态变量,加载类的时候就已经完成初始化,当创建本类的对象调用它,并重新给它赋值的时候,是赋在了方法区的变量上了?
public class TestObject { public static void main(String[] args) { Car c1 = new Car(); System.out.println(c1.tyreNum);//c1对象调用 Car c2 = new Car(); System.out.println(c2.tyreNum = 5);//c2对象调用并赋值 System.out.println(c1.tyreNum);//c1对象再次调用值改变 } } class Car { static int tyreNum = 4; }
老师,直接
new ChiledClass.f();
是等于把构造对象和引用对象结合了吗?
问题点:为啥还要判断呢?直接强制转成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)); } }
问题点:在执行测试Human类时并没有输出
"你输入的数据有误"
而且h对象的年龄没被修改,而h2对象的年龄被修改了?
代码一:定义Human类
package com.sxt.encapsulation2; public class Human { private int id; private String name; private int age; private Boolean flag; public Human(int id,String name, int age,Boolean flag){ this.name = name; this.id = id; this.age =age; } public Human(){ } public void setName(String name){ this.name = name; } public String getName(){ return name; } public void setId(int id){ this.id = id; } public int getId(){ return id; } public void setAge(int age){ if(age>0 && age<130){ this.age=age; }else{ System.out.println("你输入的数据有误"); } } public int getAge(){ return age; } public void isFlag(){ this.flag = flag; } public boolean getFlag(){ return flag; } public String toString(){ return "Human [ name=" + name+ ",age=" + age + "]"; } }
代码二:测试Human类
package com.sxt.encapsulation2; public class TestHuman { public static void main(String[]args){ Human h = new Human(); //h.age=34;//编译错误 //h.name="小红" h.setAge(250); h.setName("张三"); h.setId(007); System.out.println(h); Human h1 = new Human(007,"小白",300,false); System.out.println(h1); } }
执行结果:
疑问:本小节描述构造器的第一句总是super();用来调用父类的构造器。而继承的特点4中子类继承父类,可以得到父类的全部属性和方法(除了父类的构造器)是不是有冲突呢?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637