为了账号安全,请及时绑定邮箱和手机立即绑定

静态方法与实例方法的区别

静态方法与实例方法的区别

一只名叫tom的猫 2019-06-29 09:54:52
静态方法与实例方法的区别我只是在阅读课本上给我的课文,我不太清楚它在说什么。它基本上告诉我静态方法或类方法包括“修饰符”关键字静态。但我真的不知道那是什么意思?有谁能简单地向我解释一下什么是静态方法还是类方法?另外,我能简单地解释一下哪些实例方法是什么吗?这就是他们在教科书里给我的:静态改性剂的存在或不存在具有重要的实际意义。一旦Java处理它所属类的定义,就可以调用和执行公共类方法。实例方法的情况并非如此。在调用和执行公共实例方法之前,必须创建它所属的类的实例。要使用公共类方法,只需使用这个类。另一方面,在使用公共实例方法之前,必须有类的实例。在另一个方法的定义中调用静态方法的方式因这两个方法是否属于同一个类而不同。在上面的例子中,阶乘和main都是MainClass类的方法。因此,Main定义中对阶乘的调用仅仅引用了方法名“fac引流”。
查看完整描述

3 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

Java的基本范例是编写类,并实例化这些类。实例化对象(类的实例)具有与它们关联的属性(成员变量),这些属性影响它们的行为;当实例执行其方法时,它将引用这些变量。

但是,所有特定类型的对象都可能具有完全不依赖于成员变量的行为;这些方法最好是静态的。如果是静态的,则不需要类的实例来运行该方法。

您可以这样做来执行静态方法:

MyClass.staticMethod();//Simply refers to the class's static code

但是要执行非静态方法,必须执行以下操作:

MyClass obj = new MyClass();//Create an instanceobj.nonstaticMethod();//Refer to the instance's class's code

在更深层次上,当编译器将类放在一起时,它包含了几个指向方法的指针。当这些方法被执行时,它会跟随指针并在远端执行代码。如果类被实例化,则创建的对象包含指向“虚拟方法表”的指针,该指针指向继承层次结构中要调用的特定类的方法。但是,如果该方法是静态的,则不需要“虚拟方法表”:对该方法的所有调用都会在内存中完全相同的位置执行相同的代码。因此,在高性能系统中,如果不依赖实例变量,最好使用静态方法。


查看完整回答
反对 回复 2019-06-29
?
四季花海

TA贡献1811条经验 获得超5个赞

未声明为静态的方法和变量称为实例方法和实例变量。要引用实例方法和变量,必须先实例化类,这意味着您应该先创建该类的对象。对于静态类,不需要实例化类u可以使用(.)中的句号访问带有类名的方法和变量。

例如:

Person.staticMethod();           //accessing static method.

对于非静态方法,必须实例化类。

Person person1 = new Person();   //instantiatingperson1.nonStaticMethod();       //accessing non-static method.


查看完整回答
反对 回复 2019-06-29
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

静态方法,变量属于整个类,而不仅仅是对象实例。一个静态方法,变量与整个类相关联,而不是与类的特定实例相关联。每个对象将共享一个静态方法、变量的公共副本。每个类只有一个副本,不管有多少对象是从它创建的。


查看完整回答
反对 回复 2019-06-29
  • 3 回答
  • 0 关注
  • 749 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信