黑马程序员技术交流社区

标题: 初学者的小问题 [打印本页]

作者: 十甫寸    时间: 2013-8-7 23:22
标题: 初学者的小问题
public void setName()
        {
                this.name = name
        }
    public String getName()
        {
                return name
        }
为什么setName()前面用void,而getName前面用String。
作者: jrry    时间: 2013-8-7 23:31
首先,你的代码错了,应该是
  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值返回给调用它的对象。
作者: 郭利超    时间: 2013-8-7 23:46
恩 楼上正解  关于string 和void 就是看你是否需要返回值而定的 看需求 不要死记代码   string是因为你的名字是字符串形式的  所以setname里面要接收一个string name的参数 来给你调用对象的name赋值  因为获得名字需要返回值  而返回值是string形式的 所以不是void   
综上所述 一般对象set方法都要接收参数 参数类型具体情况分析    get一般都是没有参数的  但是后面有些还是带参数的  但是get方法基本上都要返回值
作者: 肥猫    时间: 2013-8-8 00:01
你要这个方法的名字是GETNAME就是得到名字,那当然要返回一个STRING的字符串才能看到,而SETNAME只要设置,你不需要看到结果,所以不用返回值,而且你这个SETNAME写法好象还有错.
作者: 柳小龙    时间: 2013-8-8 00:23
对于JavaBean属性的setter()方法习惯上都是返回的void型,要是想加返回值肯定是也行的,看具体情况了,比如想往方法里面设置值的时候,对于加入进来的某些特殊值进行识别,就可以返回一个返回值,告诉我们这些信息。。
作者: 吴光新    时间: 2013-8-8 08:03
本帖最后由 Jiewin 于 2013-8-8 08:07 编辑

set是设置成员变量name的值,并没有返回值,所有没有返回值类型,当没有返回值时用void代替。
get是获取成员变量name的值,获取当然就有返回值,返回值的类型就是String,即name的类型是String。

作者: 天涯海角    时间: 2013-8-8 12:58
因为在设置name使不确定返回值的类型所以用void,在获取name时返回值的已经确定,返回值的类型也明确所以getName前用String。
作者: chslzj    时间: 2013-8-8 13:04
设置不用返回,get要得到东西,所以有返回
作者: 夜写意    时间: 2013-8-8 14:01
setName()前面void的意思是没有返回值类型。其里面的语句是不用返回给调用者任何值。就比如说你的代码中的作用是改变本类对象中name的值。而且你setName()定义格式错误了,应该是
public void setName(String name)
{
}
而getName()在调用者调用的时候是需要获取name的值,所以要定义一个返回值类型String。所以其里面的语句必须要返回一个String类型的值,不能是int等其他类型。
你可以这么理解:有void的方法,调用者调用完以后就没他什么事了,爱干嘛干嘛去。
有String、int等返回值的,调用者调用完以后还要等着获取所调用方法返回的值以后才能进行下一步动作。




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