静态方法与非静态方法 静态方法和非静态方法的区别是什么?
静态方法和非静态方法的区别是什么?
没有此项的静态方法不能引用非静态变量或方法,而只能引用其自身方法体中定义的成员和参数。子类不允许重写静态方法,但子类可以重写父类的静态方法。子类不能将父类中的非静态方法重写为静态方法。主要方法也是静态方法。要在主方法中访问类的成员变量和方法,需要在方法体中创建该类的对象
在创建对象之前可以使用静态方法,必须通过新对象调用非静态方法。
例如:
public class per{
public static string GetType(){
return “human”]}
]public string getname(){
return “Zhang San”]}
在没有新对象之前,可以这样使用上述类中的GetType方法:
string type=每种类型()//类型=“人类”
但是getname方法不能这样使用,编译也不会通过
getname必须是这样:
per P=new per()
string name=P.getname()//name=“Zhang San”
当然,GetType方法也可以通过object调用:
string Type=p.GetType()//Type=“human”
总之:
静态方法在创建实例之前存在,而非静态方法在创建对象之后存在。
静态方法和非静态方法的区别?
静态方法和非静态方法之间的区别总结如下:
1。静态方法属于一个类,可以在类实例化之前使用;
2。非静态方法可以访问类的任何成员,而静态方法只能访问类的静态成员;
3。因为静态方法可以在类实例化之前使用,而类中的非静态变量只能在类实例化之后使用分配内存;
4。静态变量和其他静态方法只能出现在静态方法中,而this和其他关键字不能在静态方法中使用,因为它属于整个类;
5。静态方法比实例化更有效。静态方法的缺点是它们不会自动销毁,但是实例化的方法可以销毁;
6。静态方法和静态变量在创建后总是使用相同的内存块进行销毁,而使用实例创建多个内存。主要区别:静态方法可以在创建对象之前使用,非静态方法必须通过新对象调用。例如:在没有新对象之前,publicclassper{publicstaticstringgettype(){return“human”}publicstringgetname(){return“Zhang San”}的上述类中的GetType方法可以这样使用:stringtype=每种类型()//type=“human”,但getname方法不能以这种方式使用。编译不会通过。Getname必须是这样的:perp=newper()stringname=p.Getname()//Na当然,GetType方法也可以通过对象调用:stringtype=p.GetType()//type=“human”]~]。
。
静态方法与非静态方法 静态方法与非静态方法的区别 java题库app
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。