同一个非静态类中,静态方法如何调用非静态方法???

时间:2023-01-22 19:29:23
我再一个非静态类中,定义了一个静态方法。我要在这个静态方法中去调用这个类中的一个非静态的方法。但编译报错
“错误 7 非静态的字段、方法或属性“要求对象引用 ”

请问这是为什么,语法就是这么规定的?  谁给我讲讲。。感谢 

如果我想调用 该怎么办

10 个解决方案

#1


new 类名(构造函数参数).非静态方法(方法参数);

#2


class My
{
public void Instance()
{
}
public static void Static()
{
//实例方法需用对象调用
new My().Instance();
}
}

#3


实例化才能调用这个对象的实例方法

#4


new 对象().方法名();
实例化对象

#5


那为什么那。

就没有为什么?无法就这么规定的?

但这样从性能上讲是不是不好啊?

如果一个类中的两个方法互相调用。就不用开辟新内存了?

静态方法调用非静态 new 对象().方法名(); 实例化对象 

这样就是实例化个对象? 新开辟个内存?

是不是这个概念啊 

新手 请谅解 多解答

#6


不想NEW 把要调用的方法的类也写成静态的

#7


就没有为什么?无法就这么规定的? 

这叫规定?

这哪是规定!

你知道什么叫实例方法不?

实例方法需要对像调用,没对像咋调用实例方法?

如果是在实例方法中调用,对像就是this,静态方法没有对像,你又不生成,咋调用?

你以为设计人员脑残,设计这么个语法?

本来就是理所当然的,怎么叫规定?

#8


实例化new 就可以了

#9


创建对象实例化或改为非静态的……

#10


不可能的事情,因为静态函数无法为成员函数提供完整的参数列表。

#1


new 类名(构造函数参数).非静态方法(方法参数);

#2


class My
{
public void Instance()
{
}
public static void Static()
{
//实例方法需用对象调用
new My().Instance();
}
}

#3


实例化才能调用这个对象的实例方法

#4


new 对象().方法名();
实例化对象

#5


那为什么那。

就没有为什么?无法就这么规定的?

但这样从性能上讲是不是不好啊?

如果一个类中的两个方法互相调用。就不用开辟新内存了?

静态方法调用非静态 new 对象().方法名(); 实例化对象 

这样就是实例化个对象? 新开辟个内存?

是不是这个概念啊 

新手 请谅解 多解答

#6


不想NEW 把要调用的方法的类也写成静态的

#7


就没有为什么?无法就这么规定的? 

这叫规定?

这哪是规定!

你知道什么叫实例方法不?

实例方法需要对像调用,没对像咋调用实例方法?

如果是在实例方法中调用,对像就是this,静态方法没有对像,你又不生成,咋调用?

你以为设计人员脑残,设计这么个语法?

本来就是理所当然的,怎么叫规定?

#8


实例化new 就可以了

#9


创建对象实例化或改为非静态的……

#10


不可能的事情,因为静态函数无法为成员函数提供完整的参数列表。