静态方法不能引用非静态方法 c 怎样调用类的静态方法?

[更新]
·
·
分类:互联网
4324 阅读

c

c 怎样调用类的静态方法?

怎样调用类的静态方法?

直接用类名.方法名调用,比如有个类A,里面有个方法fun(),那就直接(),即使你实例化了一个类A比如说a,还是要用()而不是()

如何理解:在静态方法中可用this来调用本类的类方法?

不可以,因为静态方法中可以不用实例化该类的实例,所以会不存在相应的实例,而this是只当前实例,所以不能用this。

在类中定义一个静态函数,如何调用。(头文件未声明)?

声明了木有啊,有的编译器不识别后面函数的,要在前面声明 加上一句在main前面加一句static void Create();
如果是类,则在main里面创建对象, ClassName objectName; ();就调用了

java非静态方法可以调用静态变量吗?

当然可以。
1. 静态成员变量和静态成员方法都是属于类而不是某一个具体实例的,静态成员(包括属性和方法)是在类加载阶段就已经初始化了的,所以当某一个实例访问静态成员的时候,静态成员肯定是已经存在了的,所以可以访问。
2.反过来,如果让静态方法去访问实例成员那就不行了,因为实例成员的初始化在静态成员之后

为什么要定义静态属性和静态方法?

静态变量和静态方法是不需要类的实例就可以访问,比较方便。
class Test
{
public void HelloWorld(){...}
public static void StaticHello() {...}
}
Test test new Test()
test.HelloWorld()
// StaticHello可直接调用
()相当于C/C 的全局变量和全局方法
一般某类里的静态方法和函数都是跟这个类型本身有联系的
另一方面,C#是面向对象的,所有的函数和方法都必须属于某个类型

非静态构造方法的作用是什么?

静态方法是有static 关键字修饰的方法,在类被定义时已经被装载和分配了,而非静态方法在类定义时没有占内存,只有在类被实例化对象时,对象调用该方法才被分配内存。
2.静态方法只能调用静态成员和静态方法,而非静态方法既可调用静态方法或成员又可调用非静态方法和成员。
3.非静态成员只有被实例化之后才能