站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题菜鸟遇到的不解问题(讨论)

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

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


class confused
{
public static void main(String[] args)
{
retStr();
}
static String retStr()
{
return -#34;jk-#34;;
}
}
/*java编译器这样也不报错,是不是bug啊?(即使返回的是匿名对象,这样好像没什么用哦)
哪位解释下,java也不能仗着有自动垃圾回收,就这样吧.或者就java的垃圾回收机制展利弊
开讨论吧*/


定义的静态方法应该可以直接调用的吧!!


静态方法本来就是直接调用的....调用方法是:类名.方法名

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

class confused
{
public static void main(String[] args)
{
this.retStr(); // -#60;----这里的this就是confused,
// this.retStr();=confused.retStr();
}
static String retStr()
{
return -#34;jk-#34;;
}
}



这样不是挺好的吗
存在就有他的理由


楼上的说的不对吧,静态方法里是没有this的


class confused
{
public static void main(String[] args)
{
retStr();
}
static String retStr()
{
return -#34;jk-#34;;
}
}
完全没什么问题
static String retStr()
{
return -#34;jk-#34;;
}
作为一个静态方法,返回字符串常量jk,在main方法中可以直接调用自身的static方法
另外就是static修饰的没有this参数


此例中
public static void main(String[] args)
{
retStr();
}
相当于
public static void main(String[] args)
{
confused.retStr();
}
完全没问题


up


其时我还有点不解呢
为什么方法返回String
但是调用是确没有引用它
别的语言都会报错呢


我觉得应该这样啊
String str = confused.retStr();


↑返回目录
前一篇: G729/G723.1编码后的声音文件,用什么软件可以播放?
后一篇: 新手问一个简单问题