A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王明明1004 中级黑马   /  2013-5-16 11:29  /  1991 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王明明1004 于 2013-5-16 15:02 编辑






新手 求 为啥输出名字 血型 都为空啊  而且财产为0 呢
在线等

12 个回复

倒序浏览
你没有获取返回值:
例如:name
  public String getName()
  {
          return name;
  }

回复 使用道具 举报
你需要把name,blood,wealth的参数传给print方法,也就是它应该是由参数的函数public void print(String name, String blood ,int wealth){}
回复 使用道具 举报
马先强 发表于 2013-5-16 11:34
你new 的对象都没有用到

fatherson.print();  

父类调用就正确 入 fatherson。print()
而 son1 调用这个方法就为空 ?
为啥啊
回复 使用道具 举报
刘治广 发表于 2013-5-16 11:36
你没有获取返回值:
例如:name
  public String getName()

还是不对
回复 使用道具 举报
liuelxiwd 发表于 2013-5-16 11:37
你需要把name,blood,wealth的参数传给print方法,也就是它应该是由参数的函数public void print(String nam ...

这是什么样式啊 但是试了下 还是不对
回复 使用道具 举报
给你个我写的例子吧
  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
给你个我写的例子吧
  class Student
  {        private String name;

是这题 你看看

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

那你不觉得对于多个成员变量的时候 那样写比较麻烦么
回复 使用道具 举报
不知道这样符合你要求吗

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();
               
               
               

        }

}

回复 使用道具 举报
类:(class) 只是一个蓝图
对象:才是制作出来的东西。

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

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

必然打印不出来想要的东西。
回复 使用道具 举报
王明明1004 发表于 2013-5-16 12:20
那你不觉得对于多个成员变量的时候 那样写比较麻烦么

个人习惯而已,再说set.get可以自动生成没感觉到麻烦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马