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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 十甫寸 中级黑马   /  2013-8-7 23:22  /  2224 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public void setName()
        {
                this.name = name
        }
    public String getName()
        {
                return name
        }
为什么setName()前面用void,而getName前面用String。

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1

查看全部评分

8 个回复

倒序浏览
首先,你的代码错了,应该是
  1. public void setName(String name)
  2.         {
  3.                 this.name = name;
  4.         }
  5. public String getName()
  6.         {
  7.                 return name;
  8.         }

复制代码
然后跟你说为什么,你要知道一个方法体包括哪些,void和String是指一个方法的返回类型,void说明这个方法返回空,不返回任何值,这个方法的作用就是在方法里执行一些动作,例如setName()把传入的参数name值赋给对象中的实例变量name,你说的前面有String是指调用这个方法返回一个String字符串,例如getName()把对象的实例变量name值返回给调用它的对象。

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1

查看全部评分

回复 使用道具 举报
恩 楼上正解  关于string 和void 就是看你是否需要返回值而定的 看需求 不要死记代码   string是因为你的名字是字符串形式的  所以setname里面要接收一个string name的参数 来给你调用对象的name赋值  因为获得名字需要返回值  而返回值是string形式的 所以不是void   
综上所述 一般对象set方法都要接收参数 参数类型具体情况分析    get一般都是没有参数的  但是后面有些还是带参数的  但是get方法基本上都要返回值

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

回复 使用道具 举报
你要这个方法的名字是GETNAME就是得到名字,那当然要返回一个STRING的字符串才能看到,而SETNAME只要设置,你不需要看到结果,所以不用返回值,而且你这个SETNAME写法好象还有错.
回复 使用道具 举报
对于JavaBean属性的setter()方法习惯上都是返回的void型,要是想加返回值肯定是也行的,看具体情况了,比如想往方法里面设置值的时候,对于加入进来的某些特殊值进行识别,就可以返回一个返回值,告诉我们这些信息。。
回复 使用道具 举报
本帖最后由 Jiewin 于 2013-8-8 08:07 编辑

set是设置成员变量name的值,并没有返回值,所有没有返回值类型,当没有返回值时用void代替。
get是获取成员变量name的值,获取当然就有返回值,返回值的类型就是String,即name的类型是String。
回复 使用道具 举报
因为在设置name使不确定返回值的类型所以用void,在获取name时返回值的已经确定,返回值的类型也明确所以getName前用String。
回复 使用道具 举报
设置不用返回,get要得到东西,所以有返回
回复 使用道具 举报
setName()前面void的意思是没有返回值类型。其里面的语句是不用返回给调用者任何值。就比如说你的代码中的作用是改变本类对象中name的值。而且你setName()定义格式错误了,应该是
public void setName(String name)
{
}
而getName()在调用者调用的时候是需要获取name的值,所以要定义一个返回值类型String。所以其里面的语句必须要返回一个String类型的值,不能是int等其他类型。
你可以这么理解:有void的方法,调用者调用完以后就没他什么事了,爱干嘛干嘛去。
有String、int等返回值的,调用者调用完以后还要等着获取所调用方法返回的值以后才能进行下一步动作。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马