首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

非静态类中的静态方法与静态类中的静态方法有什么区别?

非静态类中的静态方法与静态类中的静态方法有以下区别:

  1. 定义位置:非静态类中的静态方法是在非静态类中定义的,而静态类中的静态方法是在静态类中定义的。
  2. 调用方式:非静态类中的静态方法可以通过类名直接调用,也可以通过实例对象调用;而静态类中的静态方法只能通过类名直接调用。
  3. 访问权限:非静态类中的静态方法可以访问类中的静态成员和非静态成员;而静态类中的静态方法只能访问静态成员,不能访问非静态成员。
  4. 内存分配:非静态类中的静态方法在每个实例对象中都会分配一份内存空间;而静态类中的静态方法只在内存中存在一份,被所有实例对象共享。
  5. 继承和重写:非静态类中的静态方法可以被子类继承和重写;而静态类中的静态方法不能被继承和重写。
  6. 对象依赖:非静态类中的静态方法可以依赖于实例对象的状态和属性;而静态类中的静态方法不依赖于实例对象的状态和属性,通常用于实现一些通用的功能。

总结:非静态类中的静态方法与静态类中的静态方法在定义位置、调用方式、访问权限、内存分配、继承和重写、对象依赖等方面存在区别。具体使用哪种方式取决于具体的需求和设计考虑。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

静态静态方法

C#可以包含两种方法静态方法静态方法。   使用了static 修饰符方法静态方法,反之荝是非静态方法。   ...洏且static方法还不能使用this....等关键字..因为它湜属于整个!   2.静态方法效率上要比实例化高,静态方法缺点是不洎动进垳销毁,洏实例化则可以做销毁。   ...3.静态方法静态变糧创建后始终使用哃一赽内存,而使用實例方式会创建多个内存.   4.C#方法两种:实例方法,靜态方法.   ...方法笩码只有一份,它们生命周期和是一致哋.实例方法是通过对象名调用,静态方法关联而不是对象名关联.   5.哪么在程序狆什么地方可以利用静态字段和静态构造方法,通常适用于于一些不会经常变化而又频繁使用数据...,所以悱靜态成员可以直接访问静态成员.

1.5K20
  • 详解java静态方法哪些_java静态变量

    定义: 在中使用static修饰静态方法会随着定义而被分配和装载入内存;而非静态方法属于对象具体实例,只有在对象创建时在对象内存才有这个方法代码段。...原因: 因为静态方法静态数据成员会随着定义而被分配和装载入内存,而非静态方法静态数据成员只有在对象创建时在对象内存才有这个方法代码段。...return t; } } } 总结: (1)static修饰静态方法会随着定义而被分配和装载入内存,编译器只为整个创建了一个静态变量副本...(2)静态不能引用静态这一特性,是由于静态会随着定义而被分配和装载入内存这一关键点决定;如果静态引用了静态,根本无法从内存中找到静态代码段,势必会出错,这种做法是Java虚拟机决不允许...如发现本站涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    1.4K10

    静态静态方法静态变量区别

    引言 一直疑惑静态静态方法静态变量内存驻用情况。今天就写了个Demo来深入八一八他们区别和注意点。...为了演示方便,方法名和变量名采取中文命名 先上结论 静态变量 只在初始化时加载一次 静态方法静态方法语法糖 实时加载里面的内容 只读属性 实时加载里面的内容 附有初始值属性语法糖 只在初始化时加载一次...(应该是set里面处理,而不是get里面处理静态方法 实时加载里面的内容 无图我还说什么?...请看代码 代码 先看测试Demo 1.静态 静态方法 /// /// 静态 /// public class TestCommonService....标准属性=111 TestCommonService.静态方法(true)=true:111 TestCommonService.静态方法(false)=false:111 ---------

    1.6K10

    Java静态方法不能调用静态方法原因

    如图,是Java静态代码和实例对象互相调用规则,我们接下来就讲讲为什么在Java静态方法不可以调用静态代码呢。...静态方法是属于,即静态方法是随着加载而加载,在加载时,程序就会为静态方法分配内存,而非静态方法是属于对象,对象是在加载之后创建,也就是说静态方法先于对象存在,当你创建一个对象时,程序为其在堆中分配内存...静态方法不依赖于对象调用,它是通过‘名.静态方法名’这样方式来调用。而对于静态方法,在对象创建时候程序才会为其分配内存,然后通过对象去访问静态方法。...我们很容易被null转移了视线,这里null关系不大(这是因为是静态方法,null没有影响),null是为了告诉我们这里引用没有指向任何地方或者说还未初始化,也就是说对象未创建,从上面对象创建过程可以知道...这和对象创建和静态方法以及静态方法之间关系有关。也就是上面说那些。

    5.6K50

    python静态方法方法

    知识回顾: 上一节,我们深化学习了属性监控,主要使用了三个魔法方法: __getattr__ __setattr__ __delattr__ 与此同时在书写属性设置监控时候,千万不要忘记写__...设置属性 4.通过查看属性值,来看属性监控是否成功 二、静态方法方法名称前加一个头标记@staticmethod。...静态方法往往用于一些自定义来实现一些通用功能,可以方便我们调用方法静态方法,不需要self这类参数,因为静态方法,不需要进行实例化,就可以进行调用。...三、方法方法名称前加一个头标记@classmethod。 方法调用也不需要进行实例化。 方法是在python构造方法一个补充。...五、总结强调 1.掌握静态方法 2.掌握方法 3.理解静态方法方法区别 4.掌握属性监控魔法方法书写方式,不能漏掉内部存储__dict__字典存储。

    3.1K20

    静态静态方法、内部类、匿名内部类、静态一些实践

    如题,在实际开发,关于静态静态方法、内部类、匿名内部类、静态一般都会遇到,特别是你在研究开源框架源码时候很是常见,它是内聚性体现。本文针对这些“概念”实战,做些总结。...正文 首先介绍静态静态内部类。先普及一个常识:一个文件里可以多个,但public只能有一个且必须和文件名一样。...静态内部类:它有一个很大优点:可以自由使用外部类所有变量和方法,对其外部类个引用 了这两个区别,各位看官应该知道什么时候使用什么样了吧 静态方法 vs 静态方法 静态方法(Static...Method)静态成员变量一样,属于本身,在装载时候被装载到内存,不自动进行销毁,会一直存在于内存,直到JVM关闭。...内部类可以很好实现隐藏(一般内部类,是不允许 private protected权限,但内部类可以) 内部类拥有外围所有元素访问权限 可以实现多重继承 可以避免修改接口而实现同一个

    93050

    python静态方法方法

    静态方法方法在python2.2被引用,经典和新式都可以使用。同时,一对内建函数:staticmethod和classmethod被引入,用来转化某一方法为这两种方法之一。...静态方法静态方法函数,不需要实例。静态方法主要是用来存放逻辑性代码,主要是一些逻辑属于,但是和本身没有交互,即在静态方法,不会涉及到方法和属性操作。...2、假设我一个学生和一个班级,想要实现功能为: 班级含有方法: 执行班级人数增加操作、获得班级总人数 学生继承自班级,每实例化一个学生,班级人数都能增加。...函数可以通过名以及实例两种方法调用! 注意: python2 ,必须总要把一个方法声明为静态,从而能够不带一个实例而调用它。...python3 ,如果方法只通过调用,而不需要通过实例调用的话,不用非要声明为静态。 #!

    1.5K30

    静态方法只能通过名进行调用_java静态方法可以调用静态方法

    静态方法调用三种方式: 1、new xx().静态(); //使用对象调用,不推荐 2、xx.静态(); //名调用,正规调用方法,推荐 3、静态(); //本类静态方法在本类调用,直接调用...注意事项: 在同包不同类调用时候,可以直接 名.方法() 调用,无需创建对象。...在不同包调用时候,需要引包再调用。 欢迎各位在评论区留言探讨 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。...如发现本站涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    1.2K10

    Python静态方法方法及实例方法

    概述 在Python,有着类属性、实例属性,静态方法方法、实例方法区别。到底什么不一样呢?接下来我们就一探究竟。...、静态方法方法 方法包括:实例方法静态方法方法,三种方法在内存中都归属于,区别在于调用方式不同。...静态方法:由调用,无默认参数。...对象不能直接调用实例方法静态方法可以。 selfcls区别 self 指的是实例对象本身(注意:不是本身)。...使用场景 需要操作类属性定义成方法。 需要操作实例属性定义成实例方法。 既不需要操作类属性,也不需要操作实例属性就定义成静态方法

    2.9K00

    Python静态方法方法及实例方法

    概述 在Python,有着类属性、实例属性,静态方法方法、实例方法区别。到底什么不一样呢?接下来我们就一探究竟。...、静态方法方法 方法包括:实例方法静态方法方法,三种方法在内存中都归属于,区别在于调用方式不同。...静态方法:由调用,无默认参数。...对象不能直接调用实例方法静态方法可以。 selfcls区别 self 指的是实例对象本身(注意:不是本身)。...使用场景 需要操作类属性定义成方法。 需要操作实例属性定义成实例方法。 既不需要操作类属性,也不需要操作实例属性就定义成静态方法

    3K10

    如何在 Python 创建静态数据和静态方法

    Python包括静态数据和静态方法概念。 静态数据 在这里,为静态数据定义一个类属性。...def getcount(self): return Demo.count 我们也可以返回以下内容,而不是返回 Demo.count - return self.count 在 demo 方法,像...self.count = 42 这样赋值会在 self 自己字典创建一个名为 count 新且不相关实例。...静态数据名称重新绑定必须始终指定,无论是否在方法 - Demo.count = 314 静态方法 让我们看看静态方法是如何工作静态方法绑定到,而不是对象。...statis 方法用于创建实用程序函数。 静态方法无法访问或修改状态。静态方法不知道状态。这些方法用于通过获取一些参数来执行一些实用程序任务。

    3.5K20

    静态方法方法

    之前,我们在定义方法都是对象方法,也就是说这些方法都是发送给对象消息。...实际上,我们写在方法并不需要都是对象方法,例如我们定义一个“三角形”,通过传入三条边长来构造三角形,并提供计算周长和面积方法,但是传入三条边长未必能构造出三角形对象,因此我们可以先写一个方法来验证三条边长是否可以构成三角形...我们可以使用静态方法来解决这类问题,代码如下所示。..._c)) def main(): a, b, c = 3, 4, 5 # 静态方法方法都是通过给发消息来调用 if Triangle.is_valid(a, b, c...if __name__ == '__main__': main() 和静态方法比较类似,Python还可以在定义方法方法第一个参数约定名为cls,它代表是当前相关信息对象(本身也是一个对象

    2K30

    【小家java】静态静态方法、内部类、匿名内部类、静态一些实践

    静态内部类一个很大优点:可以自由使用外部类所有变量和方法,对其外部类个引用 了这两个区别,各位看官应该知道什么时候使用什么样了吧 下面是静态方法静态方法区别: 静态方法(Static...Method)静态成员变量一样,属于本身,在装载时候被装载到内存,不自动进行销毁,会一直存在于内存,直到JVM关闭。...3、使用场景 内部类和静态内部类区别 静态 只能在内部类定义静态 静态内部类不依赖于外部类,即使外部类没有创建对象,静态也可以new对象 静态方法可以是静态方法也可以是非静态方法静态方法可以在外层通过静态调用...静态内部类和静态内部类在创建时有区别 //假设A静态内部类B和静态内部类C,创建B和C区别为: A a=new A(); //创建B A.B b=new A.B(); //创建C A.C...c=a.new C(); 5、最后 说说内部类好处吧 内部类可以很好实现隐藏(一般内部类,是不允许 private protected权限,但内部类可以) 内部类拥有外围所有元素访问权限

    2.9K30

    C++静态变量和静态方法使用介绍

    大家好,又见面了,我是你们朋友全栈君。 刷剑指offer第64题涉及到静态成员方法知识,有点模糊,找了两篇博客整理一下。...转自:https://www.cnblogs.com/sixue/p/3997324.html 最近一直看c++相关项目,但总是会被c++静态成员变量静态成员函数理解感觉很是模糊...静态成员概念: 所有没有加static成员都是非静态成员.而被实例化后,可以通过实例化名进行访问.静态成员生存期决定于该类生存期.而静态成员不存在生产期问题,因为它始终驻留在内存...但是,全局变量或对象是局限性。这一章里,我们主要讲述静态成员来实现数据共享。...在静态成员函数实现不能直接引用说明静态成员,可以引用说明静态成员(这点非常重要)。如果静态成员函数要引用静态成员时,可通过对象来引用。

    2.3K20

    Python静态方法、实例方法方法区别

    实例方法 定义:第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例属性和方法(也可以传属性和方法); 调用:只能由实例对象调用。...方法 定义:使用装饰器@classmethod。第一个参数必须是当前对象,该参数名一般约定为“cls”,通过它来传递属性和方法(不能传实例属性和方法); 调用:实例对象和对象都可以调用。...静态方法 定义:使用装饰器@staticmethod。参数随意,没有“self”和“cls”参数,但是方法不能使用或实例任何属性和方法; 调用:实例对象和对象都可以调用。...,self参数 def action(self): print("挥动{}".format(self.name)) # 定义一个方法cls参数 @classmethod...,逻辑上方法一般由自身调用,其实实例对象和对象都可以调用 Tool.shou_tool_count() # 调用实例方法,只能由实例对象调用 tool.action() # 调用静态方法,实例对象和对象均可调用

    1.5K20

    静态静态主要差别「建议收藏」

    如有雷同,不胜荣幸,若转载,请注明 静态静态主要差别 主要差别在于静态不能实例化,静态编译器可以运行检查确保不是偶然加入实例成员,C#编译器会自己主动把它标记为sealed。...静态不能创建静态方法。即静态方法仅仅能创建静态方法。但在静态可以调用静态方法 静态主要特性: 1:仅包括静态成员。 2:无法实例化。 3:是密封。 4:不能包括实例构造函数。...5:静态能够包括静态方法、字段、属性或事件。 6:静态方法和属性不能訪问其包括类型静态字段和事件 7:静态方法仅仅能被重载,而不能被重写,由于静态方法不属于实例成员。...8:C# 不支持静态局部变量(在方法内部定义静态变量)。 静态在使用时必需要实例化。...每次使用时都要进行实例化,普通情况下使用比較频繁,能够使用静态,比方LogClass,ConfigClass等等,个人总结,疏漏之处还请高手指点 发布者:全栈程序员栈长,转载请注明出处:https

    94010

    【Java】Java初始化顺序(静态方法静态块,静态块,最后有流程图)

    实际上要去判断一个初始化顺序,需要分一下情况,一种是没有继承关系(不考虑Object),一种是继承关系。 一、无继承关系初始化 先看下边代码。...想要弄明白这个,我就得先了解一下生命周期了。我们通过主方法运行Java程序,而这个主方法创建了i对象并且属于InitializeDemo ,所以在main方法执行时会将我们进行初始化。...在我们第一次进行初始化时候,我们静态块和静态属性会被优先构建。之后才轮得到静态块和静态属性。...当你知道了上边规则之后,我们来看代码,中有五个静态属性,一个静态属性,一个静态块,一个静态块还有一个静态方法。我们优先构建静态方法、属性和静态块,之后在构建静态块。...一个对象进行初始化,按照代码顺序从上往下先构建静态属性、方法静态块,之后在构建静态块和静态属性。

    30810

    python方法静态方法

    参考链接: Python方法静态方法 http://blog.csdn.net/pipisorry/article/details/49516185 面相对象程序设计方法静态方法是经常用到两个术语...逻辑上讲:方法是只能由名调用;静态方法可以由名或对象名进行调用。在C++静态方法方法逻辑上是等价,只有一个概念,不会混淆。在python方法分为三实例方法方法静态方法。...在python,两种方法主要区别在于参数 内部普通方法,都是以self作为第一个参数,代表着通过实例调用时,将实例作用域传入方法内;@classmethod以cls作为第一个参数,代表将本身作用域传入...cls; 静态方法无隐含参数,主要为了实例也可以直接调用静态方法。...逻辑上方法应当只被调用,实例方法实例调用,静态方法两者都能调用。 而实际上,python实现了一定灵活性使得方法静态方法都能够被实例和二者调用。 皮皮blog 示例 示例1 #!

    86810

    关于Java静态字段静态方法讨论

    静态字段 如果将一个字段定义为static,每个只有这样一个字段,而对于静态实例字段,每个对象都有自己一个副本,例如:,假设需要给每个员工赋予唯一标识码,这里给Employee添加id和一个静态字段...也就是说,需要通过Math一个对象来访问PI,并且每一个Math对象都有他自己一个PI副本。 静态方法 静态方法是不在对象上执行方法。例如,Mathpow方法就是一个静态方法。...表达式:Math.pow(x,a) 不难看出,在完成运算时候,他并没有使用Math对象,换句话说他没有隐式参数。可以认为静态方法是没有this参数方法。...静态方法俩种场景: 方法不需要访问对象状态,它所需要所有参数都要通过显式参数提供Math.pow(3,5) 方法只需要访问静态字段(例子见下) public static int getId()...静态main方法将执行并构造程序所需要对象 最后 本文为博主学习使用 参考书籍 ——java核心技术卷1

    78340
    领券