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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 方书堂 黑马帝   /  2011-12-8 20:04  /  2906 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 方书堂 于 2011-12-9 12:48 编辑

class Employee
{
        private String name;
        private String id;
        private double pay;
        Employee(String name,String id)
        {
                this.name=name;
                this.id=id;
                        }
        public void work()
{
System。out.println("employee work");
}
}

class EmployeeDemo
{
  Employee p=new Employee(String name,String id);

}不在前面的类中的构造函数内添加打印语句的话,下面怎么写才会打印出来name和id。

评分

参与人数 1技术分 +1 收起 理由
王德云 + 1

查看全部评分

11 个回复

倒序浏览
应该添加类似getName(),getId()的方法,如
class Employee
{
   ......
   public String getName()
   {
       return this.name;
   }
   .......
}
回复 使用道具 举报
可以添加get方法
回复 使用道具 举报

class Employee
{
        private String name;
        private String id;
        private double pay;
        Employee(String name,String id)
        {
                this.name=name;
                this.id=id;
                        }
        public String getName()
   {
      System。out.println(name);
   }
}

评分

参与人数 1技术分 +1 收起 理由
王德云 + 1

查看全部评分

回复 使用道具 举报
name和id都是private的,要想访问它们只能通过getName(),getId()的方法了,如同楼上那样。
回复 使用道具 举报
在Employee中写上getName()和getId()两个方法,在下面的类中调用!~
回复 使用道具 举报
韩军博 黑马帝 2011-12-8 23:35:25
7#
本帖最后由 韩军博 于 2011-12-8 23:36 编辑

重写父类中的toString()方法就好了

class Employee
{
         private String name;
         private String id;
         private double pay;
         Employee(String name,String id)
         {
                 this.name=name;
                 this.id=id;
          }
        public String toString()
       {
              return  "name="+  name  +  ","  +  "id=" +id;
      }
}


class EmployeeDemo
{
        Employee employ=new Employee("zhangsan",“1001”);
     employ.toString();
}

评分

参与人数 1技术分 +1 收起 理由
王德云 + 1

查看全部评分

回复 使用道具 举报
颜小飞 黑马帝 2011-12-8 23:39:31
8#
首先,你这里声明对象时用Employee p=new Employee(String name,String id);是错误的
要想打印出这里的p对象的name和id的属性值的方式很多
1、在Employee中添加两个对应属性的get方法
2、在Employee重写中重写toString()方法
  public void toString()
  {
    System.out.print("name:"+name+",id:"+id);
  }
3、在构造方法中打印出来
4、用反射的方式取得在p这个对象中这两个属性的值
5、还有把这两个属性的访问修饰符设为public
以上这五种方式都可以输出这个属性的值
回复 使用道具 举报
李明 黑马帝 2011-12-9 09:24:03
9#
前面的变量都定为私有的,一般就要用定义get方法来取值,这就是java的封装性。
回复 使用道具 举报
刘博 黑马帝 2011-12-9 10:10:53
10#
在上面类中添加get(name);和get(id);
回复 使用道具 举报
基本的方法有两种,楼上的都提到了。
7楼是正解,为第一种方法。
另一种就是提供成员变量的get()和set()方法,但如果重写构造函数的话,最好提供一个不带参数的构造方法。
回复 使用道具 举报
颜小飞 发表于 2011-12-8 23:39
首先,你这里声明对象时用Employee p=new Employee(String name,String id);是错误的
要想打印出这里的p对 ...

了解了。谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马