黑马程序员技术交流社区

标题: 控制台输出为空 [打印本页]

作者: 王明明1004    时间: 2013-5-16 11:29
标题: 控制台输出为空
本帖最后由 王明明1004 于 2013-5-16 15:02 编辑






新手 求 为啥输出名字 血型 都为空啊  而且财产为0 呢
在线等
作者: 刘治广    时间: 2013-5-16 11:36
你没有获取返回值:
例如:name
  public String getName()
  {
          return name;
  }


作者: liuelxiwd    时间: 2013-5-16 11:37
你需要把name,blood,wealth的参数传给print方法,也就是它应该是由参数的函数public void print(String name, String blood ,int wealth){}
作者: 王明明1004    时间: 2013-5-16 11:58
马先强 发表于 2013-5-16 11:34
你new 的对象都没有用到

fatherson.print();  

父类调用就正确 入 fatherson。print()
而 son1 调用这个方法就为空 ?
为啥啊
作者: 王明明1004    时间: 2013-5-16 12:00
刘治广 发表于 2013-5-16 11:36
你没有获取返回值:
例如:name
  public String getName()

还是不对
作者: 王明明1004    时间: 2013-5-16 12:00
liuelxiwd 发表于 2013-5-16 11:37
你需要把name,blood,wealth的参数传给print方法,也就是它应该是由参数的函数public void print(String nam ...

这是什么样式啊 但是试了下 还是不对
作者: 刘治广    时间: 2013-5-16 12:07
给你个我写的例子吧
  class Student
  {        private String name;
          private int age;
         
          public Student(){};
          public void setName(String name)
                       {
                                          this.name=name;
                           }
                          public String getName()
                       {
                                          return name;
                           }
                           public void setAge(int age)
                       {
                                          this.age=age;
                           }
                          public int getAge()
                       {
                                          return age;
                           }
         
  }
  class Test
  {
          public static void main(String[] args)
          {
                  Student s= new Student();
                  s.setName("king");
                  s.setAge(10);
                  System.out.println("名字:"+s.getName()+"年龄:"+s.getAge());
          }
  }
作者: 刘治广    时间: 2013-5-16 12:07
我写的是无参构造函数,这样方便赋值。
作者: 王明明1004    时间: 2013-5-16 12:09
刘治广 发表于 2013-5-16 12:07
给你个我写的例子吧
  class Student
  {        private String name;

是这题 你看看

1、 定义父亲类Father(姓firstName,财产wealth,血型blood),儿子Son类(玩游戏PlayGame),女儿Daughter类(跳舞Dance),调用父类构造函数给子类字段赋值。
作者: 王明明1004    时间: 2013-5-16 12:20
刘治广 发表于 2013-5-16 12:07
我写的是无参构造函数,这样方便赋值。

那你不觉得对于多个成员变量的时候 那样写比较麻烦么
作者: 刘治广    时间: 2013-5-16 12:33
不知道这样符合你要求吗

class Fu
{
  private String name;
  private int wealth;
  private String blood;

  public Fu(){};
  public String getName() {
                return name;
        }
        public void setName(String name) {
                this.name = name;
        }
        public int getWealth() {
                        return wealth;
                }
        public void setWealth(int wealth) {
                        this.wealth = wealth;
                }
        public String getBlood() {
                        return blood;
                }
        public void setBlood(String blood) {
                        this.blood = blood;
                }
        public void message()
        {
                System.out.println("名字:"+name+"财产:"+wealth+"血型:"+blood);
        }

}
class Son extends  Fu
{
  public void  PlayGame ()
  {
          
          System.out.println("玩游戏");
  }
}
class Daughter extends  Fu
{
         public void Dance()
          {
                  
                  System.out.println("跳舞");
          }
}

public class te {

        /**
         * @param args
         */
        public static void main(String[] args) {
                Son s = new Son();
                s.setName("儿子");
                s.setWealth(1000);
                s.setBlood("A");
                s.message();
                s.PlayGame();
               
               
               

        }

}


作者: 崔宏奎    时间: 2013-5-16 12:37
类:(class) 只是一个蓝图
对象:才是制作出来的东西。

你写的代码
  1. Father fatherson = new Father();
  2. Son son1=new Son();
复制代码
son1跟fatherson是两个不同的东西,只在设计的蓝图上有点关系(Son在Father蓝图的基础上增加了方法)

制造fatherson时把财产、血型,名字保存了进去。
制造son1时却没有。

必然打印不出来想要的东西。
作者: 刘治广    时间: 2013-5-16 12:37
王明明1004 发表于 2013-5-16 12:20
那你不觉得对于多个成员变量的时候 那样写比较麻烦么

个人习惯而已,再说set.get可以自动生成没感觉到麻烦




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2