A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 罗宝 中级黑马   /  2012-11-10 17:49  /  2801 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 罗宝 于 2012-11-10 23:41 编辑

main()方法为什么必须被声明为public static?

点评

你这几个问题 我觉得有点莫名其妙  发表于 2012-11-10 23:09
还有这个http://bbs.itheima.com/thread-30074-1-1.html  发表于 2012-11-10 23:08
我第一次给你评分时,是因为你做了五子棋游戏,而且做的不错,设计了UI界面。我发现你的技术很好。你看看这:http://bbs.itheima.com/thread-30074-1-1.html  发表于 2012-11-10 23:06

6 个回复

倒序浏览
本帖最后由 葛旭东 于 2012-11-10 18:06 编辑

虚拟机运行时需要一个入口,就是main方法,所以加载类的时候要将main方法加载进来,那就要用static修饰啊!

public应该是用来扩大权限的,可以让其他类使用吧。。这是我的理解。。。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 葛旭东 于 2012-11-10 18:02 编辑

也许有更好的解释吧

回复 使用道具 举报
main()方法是程序的入口设为静态的是因为要在类加载前就要出现这个入口要不然程序怎么运行啊.
回复 使用道具 举报
是这样的,一般当类还没有加载之前,就会有静态加载,静态是在类还没有加载之前就有了,

静态是用来构造类的,而构造方法是用来构造对象的。而main方法是程序的入口,可以说为了保证它第一执行,所以必须得是static 的,也就是静态的,
至于用public来修饰,那是因为public的权限最大,能保证任何的类都可以进入访问。那么这样一来就保证了main方法作为程序入口的依据。
static保证了它第一被执行,public保证了它可以被任何类访问,所以这是为了保证了main方法作为程序入口的唯一性。

我写一个简单的例子你看看。


class Test
{
Test()
{
  System.out.println("test:类加载第二执行");
}
static
{
  System.out.println("static:静态代码块第一执行");/
}
public static void main(String[] args)
{
         Test t = new Test();
}
}




评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
在java中,main()方法是java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是public static void类型的,方法必须是接受一个字符串数组的参数等。

  因为main()方法是由Java虚拟机调用的,所以必须是public,虚拟机调用的main()方法的时候,不需要产生任何对象,所以main()方法声明为static,且不需要返回值,所以必须声明为void

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
罗宝 中级黑马 2012-11-11 00:06:38
7#
杨千里  我第一次给你评分时,是因为你做了五子棋游戏,而且做的不错,设计了UI界面。我发现你的技术很好。你看看这:http://bbs.itheima.com/thread-30074-1-1.html  发表于 昨天 23:06


忽略了公告,多谢版主提醒!全力支持一下!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马