老师,您好,这段代码为什么我赋值180,它的运行结果就是180呢?代码里面有年龄判断,您帮我看看
package File; /** * 测试封装的使用 * @author zhang - dell * */ class Person{ //两个私有属性 private String name;//姓名 private int age;//年龄 //Person无参构造方法 public Person() { } /** * set 和get的使用方法 * * set:是给属性赋值 * get:是获取属性值 */ public Person(String name,int age) {//带参构造方法name和年龄 this.name = name;//在构造方法中this指的的当前name的值 //setAge(age); this.age = age;//构造方法中不能直接赋值,应该使用setAge方法 } public void setName(String name) {//给属性赋值 this.name = name; } public String getName() {//获取属性值 return name; } public void setAge(int age) {//给属性赋值 //在赋值之前先判断年龄是否合法 if(age > 130 || age < 0) {//给属性赋值判断 this.age = 18;//不合法赋默认值18 }else { this.age = age;//合法才给属性age } } @Override public String toString() {//重写toString方法 // TODO Auto-generated method stub return "Person[Person"+name+",age="+age+"]";//返回字符串的内容 } } public class Test02 { public static void main(String[] args) { Person p = new Person(); p.setName("李四"); p.setAge(-45); System.out.println(p); System.out.println("======================"); p.setName("Lili"); p.setAge(60); System.out.println(p); System.out.println("======================"); Person p2 = new Person("李四",180); System.out.println(p2); } }
运行结果:
老师,在父类中用Protected修饰后的静态属性可以被在另一个包下的子类所继承吗,要怎样调用,还是说子类继承父类的非静态,静态和构造方法是没有继承过去的?不太清楚
为什么参数改为红色部分,但执行结果还是黄色部分?
class Computer { String dianNao(String dianNao){ dianNao = "联想"; return dianNao; } } public class SxtStu2 { Computer comp; void study() { System.out.println("我正在学习!使用我们的电脑,"+comp.dianNao("惠普")); } public static void main(String[ ] args) { SxtStu2 stu = new SxtStu2(); Computer comp = new Computer(); stu.comp = comp; stu.study(); } }
public static void main(String[ ] args) {} 必须放到public修饰的类里才能顺利执行吗?放到其他非public类里执行为什么不成功?
这里的Chinese c = (Chinese)a1,这是个向下转型,我可不可以理解为a1将指向堆的地址传递给c,然后c.xiuxi()就可调用堆里面的xiuxi()方法
我这个结果是这样为什么呀?
对封装的问题:
如果想限制别人访问本类,为什么不能把类的修饰符public改成private,不是更方便吗?
为什么非要在属性和方式前面用private呢?
为什么会运行如下错误呢,该怎么解决?
package Person; /** * * @author zhang - dell * */ class Person{ String name; int age; @Override public String toString() { // TODO Auto-generated method stub return name +",年龄:" + age; } } public class Test { public static void main(String[] args) { Person p = new Person(); p.age = 20; p.name = "李四"; System.out.println("info:"+p); Test t = new Test(); System.out.println(t); } }
运行结果
老师,为什么我按照您的代码写但是最后炮弹还是出一点边界啊?
package com.bjsxt; import java.awt.*; /** * 炮弹类 */ public class Shell extends GameObject { double degree;//角度,炮弹沿着任意角度飞行 public Shell(){ x=200; y=200; degree = Math.random()*Math.PI*2; width = 10; height = 10; speed = 7; } @Override public void drawMyself(Graphics g) { Color c = g.getColor(); g.setColor(Color.yellow); g.fillOval((int)x,(int)y,width,height); g.setColor(c); //super.drawMyself(g); //根据自己的算法指定移动的路径 x += speed*Math.cos(degree); y += speed*Math.sin(degree); //碰到边界改变方向 if (y>Constant.Game_HEIGHT-this.height||y<40){ degree=-degree; } if (x>Constant.Game_WIDTH-this.width||x<0){ degree = Math.PI-degree; } } }
老师你以前说过this是指向对象的意思,这边又是什么作用,请指教
问题一:为什么此处没有double修饰?
问题二:这里的Point是指将Point类作为返回值类型吗?
方法区不是在堆里面吗,这怎么和堆是两个内存空间呢? 在程序运行的时候时会优先加载类信息,然后将类所属的方法和变量存在方法区吗?
请问下面这串代码,super()的作用是什么,我记得super是之类直接访问父类对象,下面这个代码里好像没有继承
讲课视频中,是接口引用指向实例对象 Test_A
为什么,用类引用指向实例对象Test_A,就不可以呢
我第十八行这么写居然对了,但是我写 Outer2.Inner2 inn2=new Outer2().new Inner2();反而会错为什么?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637