Topic: 什么时候调用方法时,不用加对象名或类名。

  Print this page

1.什么时候调用方法时,不用加对象名或类名。 Copy to clipboard
Posted by: forrest_gump
Posted on: 2004-09-29 11:00

在正常的语法中调用方法时,应该是
对象.方法 或 类.方法
但我见到有的程序中省略了这里的对象名或类名,如
import java.awt.*
class Fwindow extends Frame
{Menu menu;
Fwindow(string s1)
{super(s1);
setSize(160,170);
setLocation(120,120);
...

这里setSize和setLocation都是Frame的方法,但使用时都没有对象名,为什么?什么情况下能省略。

2.Re:什么时候调用方法时,不用加对象名或类名。 [Re: forrest_gump] Copy to clipboard
Posted by: ronnin
Posted on: 2004-09-29 12:17

那以后你就在这样的方法前面都加 this. 就行了ClownClownClown

3.Re:什么时候调用方法时,不用加对象名或类名。 [Re: forrest_gump] Copy to clipboard
Posted by: eric_dasini
Posted on: 2004-09-29 15:18

在本类中声明的方法, 在调用是可以什么都不加.

有继承关系是本类和父类的方法在 子类中调用都不需要加, 也可以在方法前加this
父类的加this 或 super

4.Re:什么时候调用方法时,不用加对象名或类名。 [Re: forrest_gump] Copy to clipboard
Posted by: aleel_008
Posted on: 2004-09-30 09:27

在本类的非静态方法方法中都可以
请教一下
内部非静态类怎么调用外部类方法?

5.Re:什么时候调用方法时,不用加对象名或类名。 [Re: forrest_gump] Copy to clipboard
Posted by: littledeer1974
Posted on: 2004-09-30 10:00

forrest_gump wrote:

这里setSize和setLocation都是Frame的方法,但使用时都没有对象名,为什么?什么情况下能省略。


因为你的类继承了JFrame所以你的类也就继承了JFrame中所有的方法(Method),所以反而恰恰是因为[setSize和setLocation都是Frame的方法]所以你的类都可以没有对象名,直接使用.
Smile

6.Re:什么时候调用方法时,不用加对象名或类名。 [Re: forrest_gump] Copy to clipboard
Posted by: forrest_gump
Posted on: 2004-09-30 11:48

那这样调用的结果到底算是父类的调用还是子类的调用呢,省略的到底是什么?是this吗?
如果这个类没有继承标准java类,是自己编写的方法,本类中调用这个方法时能不能这样省略?

7.Re:什么时候调用方法时,不用加对象名或类名。 [Re: forrest_gump] Copy to clipboard
Posted by: littledeer1974
Posted on: 2004-09-30 11:54

forrest_gump wrote:
1 那这样调用的结果到底算是父类的调用还是子类的调用呢,省略的到底是什么?是this吗?
2 如果这个类没有继承标准java类,是自己编写的方法,本类中调用这个方法时能不能这样省略?



1 子类调用(你自己写的类,它调用自己的方法,只不过该方法是从上边继承下来的,也就成了子类的了,这就是继承的好处之一呀)
省略的是this

2 (肯定的说)能


(我很喜欢阿甘正传,看的时候从头哭到尾,感人呀)

8.Re:什么时候调用方法时,不用加对象名或类名。 [Re: forrest_gump] Copy to clipboard
Posted by: aleel_008
Posted on: 2004-09-30 20:47

这是继承的最基本用法啊!建议看一下书再说,
还是那个问题:
内部非静态类怎么调用其外部类方法?
直接调用是吗?
如果是的话那内部类内部岂不是不能有同样方法名的这个方法了
即便可以有同名方法,那这种情况叫Overriding还是Overload呢?

9.Re:什么时候调用方法时,不用加对象名或类名。 [Re: aleel_008] Copy to clipboard
Posted by: elysium922
Posted on: 2004-10-02 01:13

假设类OuterClass内有内部类InnerClass,在内部类中可以这样调用外部类的方法:OuterClass.this.someMethod();


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923