谁能帮我详细说下public void getName()和public String getName()的区别 5

基本的我懂void输出不带返回值String输出带相应类型的返回值但是我感觉void用System.out.print()不也可以输出么但是我用下面程序试过了好像调不到参... 基本的我懂 void输出不带返回值 String输出带相应类型的返回值 但是我感觉void用System.out.print()不也可以输出么 但是我用下面程序试过了 好像调不到参数啊 。求大侠指点
import java.util.List;
import java.util.ArrayList;
class T1{
public static void main(String[] s){
List<Dog> list=new ArrayList<Dog>();
Dog dog1=new Dog("小黑");
Dog dog2=new Dog("小白");
Dog dog3=new Dog("贝贝");
Dog dog4=new Dog("小强");

list.add(dog1);
list.add(dog2);
list.add(dog3);
list.add(dog4);

int count=list.size();
System.out.println("狗狗条数:"+count);

/* for(Object obj:list){
System.out.println(obj);
}*/
for(int i=0;i<list.size();i++){
System.out.println((list.get(i)).getName(name));
}

}
}
class Dog{
private String name;
public Dog(String name){
this.name=name;
}
public void getName(String name){
System.out.print("狗狗的名字是:"+name);
}
}
展开
 我来答
百度网友a47f6080e
推荐于2018-05-06 · TA获得超过458个赞
知道小有建树答主
回答量:127
采纳率:100%
帮助的人:122万
展开全部
我就解释区别吧,程序我就不看了。
我这样解释:
1.工作 String getName()
String getName(),代表的是,我使用了这个方法,这个方法必须对我进行补偿,至于什么补偿,由getName()前面的修饰词决定,这里是String,那么等我把这个方法执行完成之后,这个方法必须给我返回一个String类型的补偿。
2.义工 void getName()
void getName(),void代表的是空,就是说,我做这件事是无偿的拉,我热衷于为人民服务拉,我做这件事完全是不需要任何补偿的,所以这个方法不需要给我任何东西。
___________________________________________________________________________________________________________
答后:一般来说,getName()这样的方法,有get在前面,顾名思义,就是我需要得到一个名字,一定是需要有东西返回的,所以这个方法前面应该是 String或其他类型,而不会是void这种空类型。虽然没看你的代码,但是希望这样解释可以帮你理解。祝你好运。
cooke1234
2013-08-17 · TA获得超过6861个赞
知道大有可为答主
回答量:4617
采纳率:72%
帮助的人:3592万
展开全部
调用方法有误:
System.out.println((list.get(i)).getName(name)); 一行中的name是什么变量,定义了吗?你改成
System.out.println((list.get(i)).getName(i.toString()));试试

另外,class Dog的getName()返回的不是Dog类里面的名字,而是参数传进来的名字。应该改成
public void getName(String nameparameter) {
System.out.print("狗狗的名字是:"+name + " " + nameparameter);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ales_lee
2013-08-17 · TA获得超过383个赞
知道小有建树答主
回答量:290
采纳率:0%
帮助的人:218万
展开全部
你定义的那个public void getName是没有返回值的,所以你的list.get(i)).getName(name)是没有任何数据类型的,你怎么能将没有任何数据类型的一个玩意儿进行输出呢? 正确的方法是将getName方法改成 有String类型返回会的方法;
public String getName(){
return this.name;

}
追问
public void getName(){
System.out.print("狗狗的名字是:"+name);
}
中不是返回了个"狗狗的名字是:"+name么 这个不是有返回值么
追答
那个不是返回值,只是一个动作,这个动作的结果是,当你调用这个函数的时候,会输出一句话,而这句话并不是返回值.返回值是会被保存当你的方法里的,当你调用有返回值的方法时,最后的结果会得到一个具体的东西.
方法就像一个工厂,而有返回值的方法就像这个工厂生产的产品,没返回值的方法就像一个只做了一些事情,但并没有实际产品实体的工厂.另外,方法的参数相当于工厂的原材料被送进去,现在明白了吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式