静态方法和非静态方法的调用

问题描述:非静态方法可以调用静态方法与变量吗 大家好,给大家分享一下静态方法和非静态方法的使用场景,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!

java中如何在静态方法中实现对非静态方法的调用,请问各位有没有具体的例子。

静态方法和非静态方法的调用的相关图片

Java中非静态方法可以调用静态方法与变量,如下:

package com.test;。

public class TestA {。

/**

 * 静态变量a

 */

private static int a=1;。

public static void main(String[] args) {。

//非静态方法在main函数里只能用对象调用,main方法也静态方法。

TestA testA=new TestA();。

//非静态方法里面有设置静态变量以及调用静态方法。

testA.test();。

System.out.println("静态变量a的值为:"+a);。

}

/**

 * 静态方法

 * @param name。

 */

public static void sayHello(String name){。

System.out.println(name+" say hello!");。

}

public void test(){。

System.out.println("我是非静态方法test!");。

//设置静态变量值

a=2;

//调用静态方法没报异常

sayHello("Test");。

}

结果:

我是非静态方法test!

Test say hello!。

静态变量a的值为:2

静态方法和非静态方法的区别是什么的相关图片

静态方法和非静态方法的区别是什么

public class A{。

//类A中非静态方法。

public void func(){ ...... }。

//类A中静态方法(主函数)

public static void main(String[] args){。

A a=new A();//需实例化A的对象后才可以调用A中非静态方法。

a.func();。

}

如上面这个简单的例子,静态方法对非静态方法发起调用时,需实例化包含非静态方法的类的对象。如果类A中静态方法需调用类B中非静态方法时,也需实例化B的对象。

原因解释:类中静态的方法或者属性,本质上来讲并不是该类的成员,在java虚拟机装在类的时候,这些静态的东西已经有了对象,它只是在这个类中"寄居",不需要通过类的构造器(构造函数)类实现实例化;而非静态的属性或者方法,在类的装载是并没有存在,需在执行了该类的构造函数后才可依赖该类的实例对象存在。所以在静态方法中调用非静态方法时,编译器会报错(Cannot make a static reference to the non-static method func() from the type A)。

不知这么说你懂了没,如果还有什么不懂可以继续问我。

静态方法怎样访问非静态方法?的相关图片

静态方法怎样访问非静态方法?

一、相同点:

静态类和非静态类在C#中定义基本是一样的,只是静态类定义需要加上static修饰符而已。

二、生命周期:

静态方法(Static Method)与静态成员变量一样,属于类本身,在类装载的时候被装载到内存(Memory),不自动进行销毁,会一直存在于内存中,直到JVM关闭。

非静态方法(Non-Static Method)又叫实例化方法,属于实例对象,实例化后才会分配内存,必须通过类的实例来引用。不会常驻内存,当实例对象被JVM回收之后,也跟着消失。

三、效率:

静态方法的使用效率比非静态方法的效率高。

按照上面的概念,只要内存够用,都可以使用静态的。

四、线程安全:

静态方法是共享代码段,静态变量是共享数据段。既然是“共享”就有并发(Concurrence)的问题。

非静态方法是针对确定的一个对象的,所以不会存在线程安全的问题。

静态方法和实例方法是一样的,在类型第一次被使用时加载。调用的速度基本上没有差别。

五、静态成员与非静态成员比较:

1、静态成员属于类所有,非静态成员属于类的实例所有。

2、每创建一个类的实例,都会在内存中为非静态成员新分配一块存储;非静态成员属于类所有,为各个类的实例所公用,无论类创建了多少实例,类的静态成员在内存中只占同一块区域。

六、使用不同:

1、静态方法属于类所有,类实例化前即可使用。

2、非静态方法可以访问类中的任何成员,静态方法只能访问类中的静态成员。

3、因为静态方法在类实例化前就可以使用,而类中的非静态变量必须在实例化之后才能分配内存,static内部只能出现static变量和其他static方法!而且static方法中还不能使用this....等关键字..因为它是属于整个类!。

4、静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁。

5、静态方法和静态变量创建后始终使用同一块内存,而使用实例的方式会创建多个内存.。

如何在静态方法中调用非静态方法的相关图片

如何在静态方法中调用非静态方法

静态方法不能直接使用本类的非静态方法。

解决方式有三种

1、两个方法都改成非晶态

2、两个方法都改成静态

3、先创建类的实例,然后静态方法在调用这个实例的非静态方法。

Java中静态方法与非静态方法的区别?

//StaticMethodTest.java。

//A ststic method cannot call a non-static method, but we can transfer a object reference, which include a non-static metho to the static method, thus, wo can call that non-static method in a indirect way.。

public class StaticMethodTest{。

void NonStaticMethod(){。

System.out.println("This is a non-sataic method.");。

static void StaticMethod(StaticMethodTest s){。

System.out.println("This is a static method.");。

s.NonStaticMethod();。

public static void main(String[] args) {。

StaticMethodTest sObj=new StaticMethodTest();。

StaticMethod(sObj); //在主函数中可以直接调用静态方法。

原文地址:http://www.qianchusai.com/%E9%9D%99%E6%80%81%E6%96%B9%E6%B3%95%E5%92%8C%E9%9D%9E%E9%9D%99%E6%80%81%E6%96%B9%E6%B3%95%E7%9A%84%E8%B0%83%E7%94%A8.html

埃森哲specialist级别,埃森哲level6 待遇

埃森哲specialist级别,埃森哲level6 待遇

remarkable2电子书,remarkable2电子书 中文版

remarkable2电子书,remarkable2电子书 中文版

我的家乡作文800字作文农村,我的家乡农村的作文800字5篇

我的家乡作文800字作文农村,我的家乡农村的作文800字5篇

窗外即景作文120个字,窗外即景作文120个字左右

窗外即景作文120个字,窗外即景作文120个字左右

冬天写一篇日记,冬天写一篇日记二年级

冬天写一篇日记,冬天写一篇日记二年级

胸罩75abc是什么意思,胸罩65/70abc是什么意思

胸罩75abc是什么意思,胸罩65/70abc是什么意思

xml转json,xml转json在线工具

xml转json,xml转json在线工具

v2/article-2929

v2/article-2929

游记优秀作文500字,游记作文500字优秀作文

游记优秀作文500字,游记作文500字优秀作文

我正在吃午餐翻译英文,我正在吃午餐翻译英文怎么说

我正在吃午餐翻译英文,我正在吃午餐翻译英文怎么说

三国志战略版关关张阵容攻略 - 刘备关羽张飞搭配指南 三国志战略版魏盾郭淮搭配攻略 - 策略与配将建议 三国志战略版主将与副将搭配指南 三国志战略版:据水会心战法详解 三国志11建造设施心得 - 实用策略与技巧分享 三国志战略版玉璧金珠使用攻略 | 实用指南 三国志H版是真的吗?真相揭秘 2024三国志战略版S3开荒攻略 - 新手高效入门指南 三国志8重制版落雷伤害详解 - 游戏机制与实战攻略 三国志战略版盾兵满级效果详解 - 兵种属性与实战表现 三国志战略版 自选剧本玩法指南 三国志9官网 - 经典策略游戏官方介绍 三国志战略版大型军屯活动指南 三国志战略版:张角盾刘备阵容搭配攻略 三国志战略版:定军山之战详解 - 经典战役复刻与战术分析 三国志战略版平民流派攻略 - 零氪玩家实用阵容推荐 三国志DS3汉化安卓版 - 经典战略游戏移动体验 三国志战略版 侦察系统详解 三国志战略版7级主城前发展攻略 - 新手快速上手指南 三国志大战DS 日版下载与游戏信息 - 简单指南 三国志战略版S2司马盾阵容搭配攻略 三国志战略版爆仓攻略 - 简单实用的资源管理技巧 三国志战略版S1刘备赵云张飞阵容搭配攻略 三国志战略版四大阵营武将介绍 - 魏蜀吴群雄全览 三国志战略版S3赛季新手进阶攻略 - 实用指南 三国志战略版孙尚香吴弓阵容搭配攻略 三国志大战DS官网 - 经典策略游戏介绍 三国志DS2汉化版 - 经典掌机策略游戏中文版介绍 三国志9特殊联动专题介绍 三国志战略版甘宁武将推荐 - 属性、战法与阵容搭配指南