马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我有个同学,他是搞Java的,他给我说“Java不是效率低,而是速度慢。”,我不是搞Java的,我实在想不透这句话的含义,难道执行速度不就是效率低吗?难道执行速度慢还成效率高了?非静态办法比静态办法多传送一个隐含的指针参数,该指针指向该办法地点类已被实例化的工具。这一区分的内在体现为非静态办法内可以使用this关头字代表所附属的类,而静态办法不成利用this,由于静态办法不针对任何实例工具。非静态办法挪用静态办法会因参数中多出一个指向本人的指针(this)而产生毛病。界说静态办法只需加注static关头字便可。静态办法自力于工具实例以外,与工具是不是已被实例化有关,挪用静态办法要用类界说的称号而不克不及用实例称号。
示例代码以下:
界说类及办法:
classClass1
{
...
publicstaticvoidMethod1(){}//静态办法
publicvoidMethod2(){}//实例办法
}
能过实例化的工具挪用办法:
Class1c=newClass1();
c.Method1();//毛病的挪用体例,静态办法不克不及经由过程实例化的工具挪用。
c.Method2();//准确的挪用体例,隐含this指针,不必要也不同意显式传进工具指针。
不实例化工具,间接挪用工具办法:
Class1.Method1();//准确的挪用体例,与工具实例有关。
Class1.Method2();//毛病的挪用体例,非静态办法必需经由过程实例化的工具挪用。
今天去面试,被问到C#中的new关键字,看了那么多的书对new关键字还是有一定认识,回来又把new复习了一遍,发现了许多以前还不知道的细节。 |