请教一下void问题

miraclezheng 2010-02-08 09:39:53
经常看到程序里面写 void xxx(),也看过马士兵的视频,也在网上看了一些VOID的文章,可是仍然不清楚,什么是无返回值类型,请大家帮忙解答一些,谢谢!(以下面程序为例)

class Myclass {
private int alpha;
public int beta;
int gamma;


void setAlpha(int a) {
alpha = a;

}

int getAlpha() {
return alpha;
}
}
class AccessDemo {
public static void main(String args[]) {
Myclass ob = new Myclass();

ob.setAlpha(-99);
System.out.println("ob.alpha is " + ob.getAlpha);
}
}
...全文
161 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
wloq 2010-02-08
  • 打赏
  • 举报
回复
同意楼上所说
bobo364 2010-02-08
  • 打赏
  • 举报
回复
void也是一种返回值,只是返回的是不确定而已,所以编译器忽略了
miraclezheng 2010-02-08
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 whut_lcy 的回复:]
什么是无返回类型,楼上N多人都说了。就从无返回值类型的用处来说吧

可以这么理解:调用方无需从无返回类型方法那里了解其执行结果,或者无需接收其返回值。完全取决与调用方

其实方法就算有返回值,但调用方不去接收处理也是没用的。

所以,如果你的方法是准备以API角色提供给别人使用(也就是你是类库开发人员)的,最好能够提供返回值就提供,而且有详细的说明。而如果仅仅是模块内部用(也就是你的角色是应用程序开发人员),有无返回值完全在于你自己。

综上,仅仅讨论返回值概念毫无用处,要结合你的目的来谈

[/Quote]

谢谢!

同时谢谢大家
whut_lcy 2010-02-08
  • 打赏
  • 举报
回复
什么是无返回类型,楼上N多人都说了。就从无返回值类型的用处来说吧

可以这么理解:调用方无需从无返回类型方法那里了解其执行结果,或者无需接收其返回值。完全取决与调用方

其实方法就算有返回值,但调用方不去接收处理也是没用的。

所以,如果你的方法是准备以API角色提供给别人使用(也就是你是类库开发人员)的,最好能够提供返回值就提供,而且有详细的说明。而如果仅仅是模块内部用(也就是你的角色是应用程序开发人员),有无返回值完全在于你自己。

综上,仅仅讨论返回值概念毫无用处,要结合你的目的来谈
miraclezheng 2010-02-08
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 luhui436 的回复:]
  因为你程序里面的没有返回值的方法是用来设置变量的值,有返回值的方法是获取变量的值;
其实任何方法都可以是void没有返回值的,只需要将你需要的值赋给一个变量,再调用完该方法后,
取该变量就行了。
  如果要判断是否应该有返回值,你只要想想,你是不是要从你定义的这个方法中得到一个值就行了;
如果需要得到,就有返回值,否则就没有
[/Quote]

懂了! 谢谢!
miraclezheng 2010-02-08
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 dinghun8leech 的回复:]
void也是一种返回值啊,只不过他是无。
如果楼主想要通过一个方法来处理一段数据,取走结果,或是获取他生成的什么东西,就需要有返回值,反之就不需要。
[/Quote]

好像理解点了,如果用无返回值是不是system.out.println(xxxxx) 里面也打印不出来了,是这个意思吗?有返回值的就可以打印出来。
luhui436 2010-02-08
  • 打赏
  • 举报
回复
因为你程序里面的没有返回值的方法是用来设置变量的值,有返回值的方法是获取变量的值;
其实任何方法都可以是void没有返回值的,只需要将你需要的值赋给一个变量,再调用完该方法后,
取该变量就行了。
如果要判断是否应该有返回值,你只要想想,你是不是要从你定义的这个方法中得到一个值就行了;
如果需要得到,就有返回值,否则就没有
dinghun8leech 2010-02-08
  • 打赏
  • 举报
回复
void也是一种返回值啊,只不过他是无。
如果楼主想要通过一个方法来处理一段数据,取走结果,或是获取他生成的什么东西,就需要有返回值,反之就不需要。
sky123123 2010-02-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 a87801912 的回复:]
引用 2 楼 yueguangkai001 的回复:
你这样去理解,就是干一件事情去了,干完了没有回报

应该是你让它干一件事,干完了他也不告诉你干得怎么样了
[/Quote]

en,透
luhui436 2010-02-08
  • 打赏
  • 举报
回复
同意楼上所说,就好比如你帮人把东西捡回来,人家却没有跟你说谢谢;
miraclezheng 2010-02-08
  • 打赏
  • 举报
回复
那这个程序里面为什么要用无返回值类型啊? 还有如果自己写程序的话,怎样判断要用无返回值还是有返回值?
a87801912 2010-02-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yueguangkai001 的回复:]
你这样去理解,就是干一件事情去了,干完了没有回报
[/Quote]
应该是你让它干一件事,干完了他也不告诉你干得怎么样了
gannian 2010-02-08
  • 打赏
  • 举报
回复
就是..
有返回值是:return XXXXX;
无返回值是:return;
DO YOU UNDERSTAND?
yueguangkai001 2010-02-08
  • 打赏
  • 举报
回复
你这样去理解,就是干一件事情去了,干完了没有回报
liujun3512159 2010-02-08
  • 打赏
  • 举报
回复
无返回类型,指这个 函数没有返回值而已,就这么简单

void setAlpha(int a) {
alpha = a;

}
这个函数就是无返回的,因为没有return 这个关键字
int getAlpha() {
return alpha;
}
这个是有返回类型的
为什么会有着2种区别?
很简单,因为有的时候,程序调用这些函数的时候,有的时候,我们要求这个函数能返回一个值,所以,就要return
如果不需要返回值,那就把函数做成无返回类型的
Z_FEI 2010-02-08
  • 打赏
  • 举报
回复
void也是一种返回类型!
比如:
public int add(){
return 1+2;
}
public void add(){
return ;//返回的是空 void的方法 可以加上“return;”也可以不加
}

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧