菜鸟遇到的不解问题(讨论)

gefengxztg 2006-09-17 08:32:35
class confused
{
public static void main(String[] args)
{
retStr();
}
static String retStr()
{
return "jk";
}
}
/*java编译器这样也不报错,是不是bug啊?(即使返回的是匿名对象,这样好像没什么用哦)
哪位解释下,java也不能仗着有自动垃圾回收,就这样吧.或者就java的垃圾回收机制展利弊
开讨论吧*/
...全文
207 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gefengxztg 2006-09-17
  • 打赏
  • 举报
回复
我觉得应该这样啊
String str = confused.retStr();
gefengxztg 2006-09-17
  • 打赏
  • 举报
回复
其时我还有点不解呢
为什么方法返回String
但是调用是确没有引用它
别的语言都会报错呢
zuguanqun 2006-09-17
  • 打赏
  • 举报
回复
up
guileen 2006-09-17
  • 打赏
  • 举报
回复
此例中
public static void main(String[] args)
{
retStr();
}
相当于
public static void main(String[] args)
{
confused.retStr();
}
完全没问题
zx2002027 2006-09-17
  • 打赏
  • 举报
回复
class confused
{
public static void main(String[] args)
{
retStr();
}
static String retStr()
{
return "jk";
}
}
完全没什么问题
static String retStr()
{
return "jk";
}
作为一个静态方法,返回字符串常量jk,在main方法中可以直接调用自身的static方法
另外就是static修饰的没有this参数
jacshan 2006-09-17
  • 打赏
  • 举报
回复
楼上的说的不对吧,静态方法里是没有this的
daidongsheng 2006-09-17
  • 打赏
  • 举报
回复
这样不是挺好的吗
存在就有他的理由
liang8305 2006-09-17
  • 打赏
  • 举报
回复
静态方法本来就是直接调用的....调用方法是:类名.方法名

另外:
在这个类来说,main方法是在confused类下,
那么在main方法中不写类名的方法调用就隐含了this
也就是说,此类相当于:

class confused
{
public static void main(String[] args)
{
this.retStr(); // <----这里的this就是confused,
// this.retStr();=confused.retStr();
}
static String retStr()
{
return "jk";
}
}
nanazhu 2006-09-17
  • 打赏
  • 举报
回复
定义的静态方法应该可以直接调用的吧!!

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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