免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 剑心通明
打印 上一主题 下一主题

public static void main(String[] args)的几个疑问 [复制链接]

论坛徽章:
0
18 [报告]
发表于 2005-04-26 16:54 |只看该作者

public static void main(String[] args)的几个疑问

[quote]原帖由 "剑心通明"]是啊,怎么从另外一个类里面调用?小弟只会写很简单的程序,大哥教一下吧,谢谢![/quote 发表:


不好意思刚刚看到,

呵呵,
大雪飞扬 已经说了
呵呵

是这样的

就是你再创一个类,再该类中,创建例子中的类对象,然后,你怎样都无法调用到private方法。

呵呵

不知道你明白了没有,这就是说 private的方法只能在该类中可见,在其他的任何类中都不可见,无法调用。

论坛徽章:
0
17 [报告]
发表于 2005-04-26 16:38 |只看该作者

public static void main(String[] args)的几个疑问

呵呵,你再类似创建一个含main的类,从该类中调用上面样例中的类的一些方法试试

论坛徽章:
2
丑牛
日期:2013-09-29 09:47:222015七夕节徽章
日期:2015-08-21 11:06:17
16 [报告]
发表于 2005-04-26 16:19 |只看该作者

public static void main(String[] args)的几个疑问

是啊,怎么从另外一个类里面调用?小弟只会写很简单的程序,大哥教一下吧,谢谢!

论坛徽章:
0
15 [报告]
发表于 2005-04-26 15:36 |只看该作者

public static void main(String[] args)的几个疑问

原帖由 "剑心通明" 发表:

不对吧?我怎么编译通过了,执行也对啊?

private 是该类可见的,

你一定是在 该类main方法中创建对象,调用该方法的把?

论坛徽章:
2
丑牛
日期:2013-09-29 09:47:222015七夕节徽章
日期:2015-08-21 11:06:17
14 [报告]
发表于 2005-04-26 15:24 |只看该作者

public static void main(String[] args)的几个疑问

原帖由 "perryhg" 发表:

mtc.sayGoodBye(); // private 方法不允许从外部调用,这行编译就会报错.

不对吧?我怎么编译通过了,执行也对啊?

论坛徽章:
0
13 [报告]
发表于 2005-04-25 15:13 |只看该作者

public static void main(String[] args)的几个疑问

原帖由 "剑心通明" 发表:

嗯,有点明白了,谢谢!我得好好想想




我也不敢确定我的想法是正确的,

如果有虾米疑问,拿出来讨论哈。

呵呵

论坛徽章:
2
丑牛
日期:2013-09-29 09:47:222015七夕节徽章
日期:2015-08-21 11:06:17
12 [报告]
发表于 2005-04-25 11:05 |只看该作者

public static void main(String[] args)的几个疑问

[quote]原帖由 "白色乌鸦" 发表:


楼主:以下是我的解释,关于 public ,是这样的:它能不能被其他自己定义的类,我不知道,没事过,你可以试试,至于为什么用public,因为,只有用public,他才是完全可见的,这样才可以被jvm方便的调用。

再就

论坛徽章:
0
11 [报告]
发表于 2005-04-25 09:37 |只看该作者

public static void main(String[] args)的几个疑问

原帖由 "剑心通明" 发表:
看书上说的:
看书上说的:
public:允许任何类调用main方法。

其他类如何调用?***.main(****)这样吗?main方法不都是一个类所必须的一个方法吗?

static:表示main方法与HelloWorldApp类相关联,而不是在这个类的一个实例上进行操作。

这句话怎么理解,有点不明白啊。


楼主:以下是我的解释,关于 public ,是这样的:它能不能被其他自己定义的类,我不知道,没事过,你可以试试,至于为什么用public,因为,只有用public,他才是完全可见的,这样才可以被jvm方便的调用。

再就是 static:因为只有使用static才可以不用创建实例就可以调用该方法。因为,main方法是入口,也就是说,jvm要执行,就必须从 main方法开始,那么,他也是没有办法在使用main方法,就已经创建好了实例。

所以,我觉得,他不只是一种约定,他有自己的道理,这样做的目的就是让他符合作为入口的身份,另一方面就是方便jvm调用。

我是这样理解的
不知道对楼主有没有帮助。
呵呵

论坛徽章:
0
10 [报告]
发表于 2005-04-25 05:02 |只看该作者

public static void main(String[] args)的几个疑问

main 是java类里面的一个特殊约定,用main来学习和实践修饰词确实不好。我写了一个简单的测试类,希望有助于你理解这些关键词

  1. public class MyTestClass {
  2.         public void sayHello()
  3.         {
  4.                 System.out.println("hello");
  5.         }
  6.        
  7.         private void sayGoodBye()
  8.         {
  9.                 System.out.println("Good-bye");
  10.         }
  11.        
  12.         public void shoutGoodBye()
  13.         {
  14.                 sayGoodBye();
  15.         }

  16.         public String getOK()
  17.         {
  18.                 String str1 = "OK";
  19.                 return str1;
  20.         }
  21.        
  22.         public static void sayOK()
  23.         {
  24.                 System.out.println("OK");
  25.         }
  26.        
  27.         public static String getHello()
  28.         {
  29.                 String str1 = "Hello";
  30.                 return str1;
  31.         }
  32. }
复制代码


当你使用这个类里面的方法的时候:
所有static的方法不需要用new创建实例就可以用,比如:
MyTestClass.sayOK(); //在屏幕上输出 “OK”
String hello = MyTestClass.getHello(); // hello == "hello"

而不是static 的方法必须要用new实例化以后才能用
MyTestClass mtc = new MyTestClass();
mtc.sayHello(); //输出 "Hello"
mtc.sayGoodBye(); // private 方法不允许从外部调用,这行编译就会报错.
mtc.shoutGoodBye(); //可以从class内部调用private
String str2 = mtc.getOK(); // str2 = "OK"

这样理解吗?

论坛徽章:
0
9 [报告]
发表于 2005-04-24 22:20 |只看该作者

public static void main(String[] args)的几个疑问

原帖由 "剑心通明" 发表:

这本书不是sun的官方帮助文档翻译过来的吗?
酱紫啊。不过我真的觉得这样解释main实在是有些勉强,其实只是一个约定而已。
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP