黑马程序员技术交流社区

标题: 静态函数的相关问题,希望大家帮忙解决 [打印本页]

作者: ccyznhy    时间: 2013-6-22 23:21
标题: 静态函数的相关问题,希望大家帮忙解决
本帖最后由 孙百鑫 于 2013-6-27 07:06 编辑

问题:
class TestStatic
{
    public static void main(String[] args)
    {
        Person.show();
    }
}
class Person
{
    static String country="中国";
    String name;
    public static String show()
        {
            return country;
        }
}
编译通过,运行也没问题,但为何打印不出静态成员country的赋值“中国”?(打印无结果)



作者: 王磊    时间: 2013-6-22 23:32
调用show方法,只是返回country的值,楼主并没有写输出打印语句,所以只执行了调用过程程序就结束了。要显示的话,要写打印输出语句。System.out.println();
作者: oxf974025918    时间: 2013-6-22 23:39
你只调用方法得到String,main方法里面没有输出,还有你这个是单例模式的饿汉式吗?NONONO,要先私有构造函数。
作者: oxf974025918    时间: 2013-6-22 23:39
你只调用方法得到String,main方法里面没有输出,还有你这个是单例模式的饿汉式吗?NONONO,要先私有构造函数。
作者: 亲雨泽    时间: 2013-6-22 23:50
你这只是返回了country的值.要向输出应该这样写:  定义一个String类型的变量 String country=Person.show(),再用system.out.println(country)输出一下。就能得到你想要的结果!
作者: ccyznhy    时间: 2013-6-22 23:56
刚刚自己想明白了!!丢人了
作者: sunriselzz    时间: 2013-6-22 23:57
写个打印输出语句,就可以了
  1. package com.itheima;

  2.         class TestStatic
  3.         {
  4.             public static void main(String[] args)
  5.             {
  6.                 System.out.println(Person.show());
  7.             }
  8.         }
  9.         class Person
  10.         {
  11.             static String country="中国";
  12.             String name;
  13.             public static String show()
  14.         {
  15.             return country;
  16.         }
  17.         }


复制代码

作者: ccyznhy    时间: 2013-6-22 23:57
刚刚自己想明白了,多谢大家指点!!! 现在大家都没睡呢?得学到几点啊?我是新手,还在自学中。。。
作者: 陈鹏    时间: 2013-6-23 00:15
  1. class TestStatic
  2. {
  3.     public static void main(String[] args)
  4.     {
  5.         //Person.show();
  6.                 Person p=new Person();
  7.                 String s=p.show();
  8.                 System.out.println(s);
  9.         }
  10. }
  11. class Person
  12. {
  13.     static String country="中国";
  14.     String name;
  15.     public static String show()
  16.     {
  17.                 return country;
  18.         }
  19. }
复制代码
结果就是中国
作者: 孙百鑫    时间: 2013-6-27 07:05
楼主您好。我已将您的帖子改成已解决。如果帖子发布长时间没加分。及时联系我。以免漏分的情况发生{:soso_e100:}
作者: gzbbxu    时间: 2013-6-27 11:42
打印输出就ok啦。。给你一个标准的
  1. class Test5 {
  2.         public static void main(String[] args) {
  3.             Person p=new Person("zhangsan");
  4.             p.say();
  5.         }
  6. }

  7. class Person {
  8.         private static String country = "中国";
  9.         private String name;

  10.         Person(String name) {
  11.                 this.name = name;
  12.         }

  13.         public static String show() {
  14.                 return country;
  15.         }

  16.         public void say() {
  17.                 System.out.println("我的名字是:" + name + "我的国籍是:" + country);
  18.         }
  19. }
复制代码

作者: HM张博文    时间: 2013-6-27 15:59
你有没有写System.out.print(Person.show())




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