问一个基础知识,见笑

CanadianTire 2009-11-17 11:37:07
如下两种写法有什么不同呀?
1.

public class TestMain {

public static void main(String[] args){
TestMain main = new TestMain ();
main.runOnTime();
}

private void runOnTime(){
...
}
}

2.

public class TestMain {

public static void main(String[] args){
this.runOnTime();//or just runOnTime();
}

private void runOnTime(){
...
}
}
...全文
67 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaojia92mm 2009-11-18
  • 打赏
  • 举报
回复
不懂学习一下
CanadianTire 2009-11-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lwuit 的回复:]
举个例子。:
屋子里有个箱子 和你自己。
第一种:是你从屋子出去然后在进来,拿这个箱子
第二种:你在屋子里直接去拿这个箱子。
哪个简单、?
^_^!
[/Quote]
就这样简单?嗯,待我想想

[Quote=引用 2 楼 heartlesstoanyone 的回复:]
第二个根本是非法的,在静态方法中,this根本是不可用的。
[/Quote]
您说的对,我的意思是如果方法是static的,在main()里写this...,如果不是,就直接调用方法。
总之,问题主要是说创建一个本类的实例,然后调用方法和直接调用的区别。多谢回答
hyl124816 2009-11-18
  • 打赏
  • 举报
回复
静态方法中不能调用非晶态方法 你第二种方法编译会错误
CanadianTire 2009-11-18
  • 打赏
  • 举报
回复
上面几位说的很对,关于runOnTime()方法,我自己试了一下,应该是这样的:

public class A
{
public static void main(String args[])
{
A a = new A();
a.test();
}

public void test(){}
}

这样是没问题的
如果:

public class A
{
public static void main(String args[])
{
test();
}

public void test(){}
}

是错误的,除非把test()定义为static的。
至于this,基本不用想了,在static的方法中是不能用的。原因嘛,大概知道,回头再仔细查一下书巩固一下。

汗,基础太差了,多谢各位,平分分吧。
qb_2008 2009-11-18
  • 打赏
  • 举报
回复
没见过
heartlesstoanyone 2009-11-17
  • 打赏
  • 举报
回复
第二个根本是非法的,在静态方法中,this根本是不可用的。
阁楼上的伟哥 2009-11-17
  • 打赏
  • 举报
回复
举个例子。:
屋子里有个箱子 和你自己。
第一种:是你从屋子出去然后在进来,拿这个箱子
第二种:你在屋子里直接去拿这个箱子。
哪个简单、?
^_^!

50,543

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧