静态方法与非静态方法的区别

静态方法与非静态方法的区别区别就是静态只能被静态调用 而非静态可以调用静态和非静态

        首先,两者本质上的区别是:静态方法是在类中使用staitc修饰的方法,在类定义的时候已经被装载和分配。而非静态方法是不加static关键字的方法,在类定义时没有占用内存,只有在类被实例化成对象时,对象调用该方法才被分配内存。

       其次,静态方法中只能调用静态成员或者方法,不能调用非静态方法或者非静态成员,而非静态方法既可以调用静态成员或者方法又可以调用其他的非静态成员或者方法。

例子1:静态方法的Main方法访问类中的非静态成员方法。

class Test{ public int sum(int a,int b){//非静态方法 return a+b; } public static void main(String[] args){ int result=sum(1,2);//静态方法调用非静态方法 System.out.println("result="+result); } }

结论:以上程序在编译时,会提示静态方法不能引用非静态方法的错误信息。(如下图所示)

静态方法与非静态方法的区别静态方法与非静态方法的区别

静态方法与非静态方法的区别

解决方法:

一、静态方法只能访问静态方法和静态成员。

class Test{ public static int sum(int a,int b){//加入static关键字,变成静态方法 return a+b; } public static void main(String[] args){ int result=sum(1,2);//静态方法调用静态方法 System.out.println("result="+result); } }

二、非静态方法要被实例化才能被静态方法调用。

class Test{ public int sum(int a,int b){ return a+b; } public static void main(String[] args){ Test test=new Test();//实例化类 int result=test.sum(1,2);//调用非静态方法 System.out.println("result="+result); } }





版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/198150.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午3:41
下一篇 2026年3月26日 下午3:41


相关推荐

  • sql =null is null_sqlserver isnull函数

    sql =null is null_sqlserver isnull函数SQLServe中的isnull()函数:     isnull(value1,value2)    1、value1与value2的数据类型必须一致。    2、如果value1的值不为null,结果返回value1。    3、如果value1为null,结果返回vaule2的值。vaule2是你设定的值。    如果在sel

    2022年10月21日
    5
  • 你是一个合格的孩子吗?

    你是一个合格的孩子吗?最近在优酷上看到两个视频感触很深,拿来和大家一起分享一下。第一个是《天堂的午餐》  视频虽然只有短短的六分钟,也许会改变你的一生,故事讲了一个儿子为辛苦了一辈子的母亲做了一顿丰盛的午餐,但这顿午餐却成了母亲的天堂的午餐,就在母亲到家准备进家门时突然晕倒了,及时送到医院后抢救无效去世,母亲没有吃上儿子给她做的饭就去世了,视频中母亲问:我多会能吃上一顿你给我做的饭呢?儿子回答说…

    2025年11月7日
    5
  • 深入理解JS闭包

    深入理解JS闭包闭包的理解

    2022年6月18日
    35
  • java divide_java中awt做什么的

    java divide_java中awt做什么的gridx,gridy:设置组件的位置,从0开始gridx设置为GridBagConstraints.RELATIVE代表此组件位于之前所加入组件的右边。gridy设置为GridBagConstraints.RELATIVE代表此组件位于以前所加入组件的下面。建议定义出gridx,gri…

    2025年9月1日
    5
  • appium使用教程python_Appium使用教程

    appium使用教程python_Appium使用教程一 Appium 介绍 Appium 是一个开源的自动化测试工具 其支持 iOS 和安卓平台上的原生的 基于移动浏览器的 混合的应用 1 Appium 理念 Appium 是基于以下的四个理念设计来满足移动平台测试自动化的要求的 1 您不应该因为需要自动化测试您的应用而不得不以任何形式去重新编译或者修改你的 app2 您不应该把自己固定在一门特定的语言和一个特定的框架上去实现和运行你的测试 3 当说到测试自动化 AP

    2026年3月17日
    2
  • pytorch中resnet_通过Pytorch实现ResNet18

    pytorch中resnet_通过Pytorch实现ResNet18对于像我这样刚刚入门深度学习的同学来说,可能接触学习了一个开发工具,却没有通过运用来熟练的掌握它。而ResNet是深度学习里面一个非常重要的backbone,并且ResNet18实现起来又足够简单,所以非常适合拿来练手。我们这里的开发环境是:python3.6.10pytorch1.5.0torchvision0.6.0cudatoolkit10.2.89cudnn7.6.5首先,我们需…

    2022年5月26日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号