王的女人
2018-06-08 10:08
采纳率: 30%
浏览 1.2k
已采纳

如何理解 java编程思想中“静态方法可以创建其自身对象”这句话?

在静态方法中,调用非静态方法时.。 java编程思想中说道: “如果传递一个对象的引用到静态方法里面.(静态方法可以创建其自身对象),然后通过这个引用(和this效果相同),你就可以调用非静态方法和访问非静态数据成员了。但是通常要达到这样的效果,你只需要写个非静态方法就即可。"

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

9条回答 默认 最新

  • hu1hui 2018-06-08 12:25
    已采纳

    静态方法不能操作对象,是没有this参数的方法,因此静态方法不能访问该类实例的非静态变量、方法等
    而在静态方法中实例化该类后,则可以通过实例去访问非静态变量、方法。
    所以如果在该静态方法中调用该类的非静态变量、方法,不如直接写一个非静态方法,用this调用

    点赞 评论
  • diyiwangyuehai 2018-06-08 10:23

    静态方法只是本身它自己被调用的时候不需要创建的对象的实例

    点赞 评论
  • 半知烟 2018-06-08 10:39

    静态方法不允许访问该类实例的非静态变量、方法等,非嘚访问可以直接在静态方法中实例化该类,然后通过实例去访问。
    那么问题来了,既然需要实例化该类,为什么不直接把该方法写成非静态方法,然后用实例调用。

    点赞 评论
  • DawnConming 2018-06-08 10:56

    静态方法与静态变量一样,属于类本身,而不属于那个类的一个对象

    点赞 评论
  • qq_41915928 2018-06-09 02:13

    静态方法不允许访问该类实例的非静态变量、方法等,非嘚访问可以直接在静态方法中实例化该类,然后通过实例去访问。
    那么问题来了,既然需要实例化该类,为什么不直接把该方法写成非静态方法,然后用实例调用。
    静态方法不能操作对象,是没有this参数的方法,因此静态方法不能访问该类实例的非静态变量、方法等
    而在静态方法中实例化该类后,则可以通过实例去访问非静态变量、方法。
    所以如果在该静态方法中调用该类的非静态变量、方法,不如直接写一个非静态方法,用this调用

    点赞 评论
  • 王的女人 2018-06-09 02:47

    我们平时用类名直接调用静态方法,这个底层有没有创建对象呢?我在网上看到有人说,当在该类的外面,使用该类名直接调用静态方法,底层还是会创建对象?

    点赞 评论
  • 凝__ 2018-06-11 08:10

    他只是提供一种骚操作吧。。。别想太多,只是说明语法上的可行性。
    类似的我记得还有不少,记不清了 像重载+自动转型的骚操作。。还有可扩展形参列表,真这么用怕是疯了吧

    点赞 评论
  • 湮顾千古 2018-06-11 09:53

    等于传递了实例做参数。静态方法就可以通过实例调用成员函数

    点赞 评论
  • 永夜月 2018-06-11 16:33

    调用静态可以通过类名或对象
    但非静态只能通过对象调用
    可以参考main方法调用的过程,main就是一个静态
    在main里面调用非静态的需要把它变成一个对象再进行调用,这中间的行为就是
    如果传递一个对象的引用到静态方法里面.(静态方法可以创建其自身对象)

    点赞 评论

相关推荐 更多相似问题