黑马程序员技术交流社区

标题: 一个看似很简单的问题 [打印本页]

作者: 吕晓阳    时间: 2015-4-28 10:01
标题: 一个看似很简单的问题
void表示没有具体返回值,那么看下列程序
  1. class Person
  2. {
  3.         private String name;
  4.         Person(String name)
  5.         {
  6.                 this.name = name;
  7.         }
  8.         pubic void getName()
  9.         {
  10.                 return name;
  11.         }
  12. }
复制代码
此程序中getName()方法,返回值类型是void,怎么能够返回name.

作者: cyr    时间: 2015-4-28 10:23
你编译的时候就会报错啦,你都声明了方法是没有返回值的,但是代码里又要return。前后都矛盾了。
作者: 大西洋    时间: 2015-4-28 10:24
本帖最后由 大西洋 于 2015-4-28 10:28 编辑

这位兄台,public 您打错了。。。
void 方法是不需要返回值的,要用getName()方法可以直接传参;
  1. class Person_new
  2. {
  3.     private String name;        // 封装String name,不被其他类访问
  4.    
  5.     Person_new(String n)
  6.     {
  7.             // 这里 this 调用的是类的成员变量  private String name
  8.         this.name = n;                // 把 n 赋值给 this.name,从而让外部参数传入进行运算
  9.         System.out.println("\r这是Person打印的name:"+name);
  10.     }
  11.     public void getName(String n)        //void方法不需要返回值
  12.     {
  13.             this.name = n;
  14.             System.out.println("\r这是getName打印的name:"+name);
  15.     }
  16. }

  17. public class Person{
  18.         public static void main(String[] args){
  19.                 String jn = "Jack";
  20.                 String gn = "getJack";
  21.                 new Person_new(jn).getName(gn);// 同时打印构造器的this.name 以及 getName()方法的 this.name
  22.         }
  23. }
复制代码




作者: 只吃饭不洗碗    时间: 2015-4-28 14:00
public String getName( )
作者: 907888614    时间: 2015-4-28 15:02
报错,不需要return 直接打印
作者: l_z    时间: 2015-4-28 15:36
:call:哎,这年头编程出错奇葩多啊
作者: 李海明    时间: 2015-4-28 18:35
肯定错的啊
作者: bboyXiaoNuo    时间: 2015-4-28 21:13
不对啊这个好像是
作者: IDhmpj    时间: 2015-4-28 21:26
编译不会通过,方法体中使用到了return时,如果 return 后面跟了变量,那么方法必须要申明返回类型。如果不跟任何变量,表示结束方法的运行。
作者: 2119391569    时间: 2015-4-28 21:33
楼上总结的相当靠谱!顶一下!
作者: hejinze    时间: 2015-4-29 00:01
看看大神




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