-
1.将 i 定义为静态,然后使用下面的语句调用它。
2.在下面的 getnum 中定义一个 class1 的实例,例如 apublic static int getnum()class1 a = new class1(); 将空间分配给类 i,您将拥有一个空间地址。
return = 2;
使用语句调用。
在 C 语言中,静态类型的成员等效于其他语言中的全局变量、全局常量、全局函数等。 在C语言中,它属于类本身,类的任何其他成员都可以使用它,并且在生成类时没有分配存储空间,因此直接与“类名”一起使用。 成员名称”。
非静态成员必须属于一个类的实例,这些非静态成员只有在实例生成后才会在实例中生成,访问时使用“实例名称”。 成员名称”。
-
static 是指预先分配了空间的变量和方法。
class 是一个动态分配空间的类,所以调用该类的第一件事就是用 new
因此,在预分配的空间 (getnum) 中调用没有分配空间的类或变量是有问题的。
1.一种方法是将 int i; 重写为静态 int i;
这是一种将 i 定义为提前分配空间的变量的方法。
2.另一种方法是动态分配空间,即。
public static int getnum()
class1 c =new class1();将空间分配给类 i,您将拥有一个空间地址。
return = 2;
-
因为 getnum 方法是静态的,否则你可以删除静态。
-
在操作和效率方面没有太大区别,但对于有抱负的程序员来说却有很大的不同。
实例方法必须实例化一个特定的对象才能被访问,为了封装起见,不允许该对象的成员变量被外部程序访问,只允许实例方法访问,即做**访问隔离。 这种机制对于面向对象编程来说是必要和标准的。
但有时我们需要做一些数据处理,它是类的一部分,但是是泛型的,并且通常有一定数量的数据(封装在方法函数中),并且它处理的数据与类中的其他成员变量无关。
在这种情况下,将方法封装在类中很麻烦,并且存在以下几个问题:
1.奇怪的是,处理后的数据与类的业务逻辑完全无关,而是封装在类中,破坏了整体架构(导致逻辑松散)。
2.创建对象的过程太长(因为会频繁调用很多不同的外部程序的地方,太麻烦了,强迫症患者也要注意每次都设置为空)。
3.难看,可读性差(太多,容易视觉复杂)。
例如,如果您正在开发一个数据库系统并设计一个类来处理数据库日期和时间的访问和显示转换(例如,以指定格式输出),那么现在假设它封装了一个用于检查日期有效性的公共方法,该方法一方面为类成员服务,另一方面, 在许多情况下,例如通过用户界面接受用户输入的日期,我们希望首先对其进行验证。如果数据有效(包括其他数据),然后创建一个数据对象来传递数据(因为创建对象的成本很高),那么你就要调用类方法而不实例化,这是静态方法的需求场景之一。
假设这个自定义日期类是 mydate,下面是伪**,日期 d;
d=getuidate();获取接口的日期数据。
if ( 直接使用类名访问静态方法,而无需事先定义对象名和 new
其他处理**。
-
静态方法,直接通过类名。 方法名称。 静态成员也是如此。
在**调用的情况下,没有太大区别。
-
static 表示静态,可以修饰类、字段、属性、方法,但不能用于索引器、析构函数或类以外的类型。
如果它被标记为静态,则无需创建实例对象即可调用它,您可以直接通过类名指出它。
1.在用于变量之前,这意味着每次重用变量所在的方法、类或自定义类时,变量的值是程序在此运行中最后一次为变量赋值的值静态函数
2.它前面有一个静态方法(函数),以指示该方法由它所在的类或自定义类拥有,而不是由类的实例拥有静态方法
案例一:非静态方法:
案例 2:静态方法:
3.在用于类之前,就意味着该类型不能创建一个新实例,简单来说,该类型的所有方法都是静态方法,并且该类中的非静态方法不能使用,该类型称为静态类
例如,C 控制台操作的 cancle 类的成员被标记为静态,可以直接使用只要指出它并使用它。
如果未标记为静态,则可以通过创建实例对象来调用它,例如,动态字符串 stringbuilder 需要由新实例调用。
注:1尽管类的实例包含该类的所有实例字段的单独副本,但每个静态字段只有一个副本。
2.不能使用它来引用静态方法或属性访问器。
3.如果将 static 关键字应用于某个类,则该类的所有成员都必须是静态的。
4.类和静态类可以具有静态构造函数。 静态构造函数在程序启动和类实例化之间的某个时间点被调用。
静态类:如果一个类被声明为静态类,则它不能被实例化、继承,也不能包含非静态成员。
在非静态类中,可以包含静态成员。
静态方法:静态方法中无法访问非静态成员。
非静态方法,可以同时调用静态成员和非静态成员。
静态成员的生命周期是从程序的开始到程序的结束。
-
首先,我想问一下。 谁告诉你多久使用它一次?
这两样东西不能经常使用
静态变量使用静态修饰符声明,静态修饰符是在实例化类时创建的,通过没有静态修饰符声明的类访问的变量称为非静态变量。
实例化对象时会创建一个静态变量,通过该对象访问的同一个 c 静态变量对于类的所有实例都是相同的值,而对于同一类的不同实例,同一个非静态变量可以具有不同的值。
不能在静态函数的实现中使用非静态成员。
c 静态方法和属性在程序启动时全部加载到内存中,无论以后是否使用。 即使没有人再访问程序,这部分内存仍然不会被释放,所有访问者看到的静态属性的数据几乎是一样的,例如用户 A 设置了用户名属性,当用户 B 访问时,获取的用户名仍然是用户 A 设置的用户名。 这种功能,如果用在固定数据中,问题不大,比如连接字符串等等。
c 静态方法 数据成员属于类,而不是某个对象,因此不需要实例化它们来调用它们; 静态方法和静态数据成员等效于共享变量。 它对类中的所有对象都是通用的,因此在需要共享数据时定义此类型时,它是一个不错的选择。 一旦定义了一个类(不一定是实例化对象),该类的所有静态成员都会被加载到内存中(程序启动时不会加载到内存中,如果未定义类,则不会加载到内存中)静态成员的作用域与其所属类的作用域相同。
这意味着你的程序已经完成。 即使没有实例化对象。 这些也存在于内存中。
因此,它对操作速度有很大影响(如果您将其用于大型项目)。
所以。 它不经常使用。
-
谨慎使用它,这个东西会在程序运行时添加到内存中(无论你是否访问它)。
-
静态类主要是共享的,静态类的内部成员必须是静态的。
静态通常是在加载程序时构造的。
就我个人而言,我在程序配置部分使用静态类最多的是,由于它的共享特性,需要以多种形式调用,最主要的是程序启动时就初始化了。
静态类可以有构造函数,但它们只被调用一次。
至于上面提到的程序的配置数据部分,如果使用非静态类,那么需要手动初始化它,然后才能随时访问它,并且还需要将其分配给静态变量才能使用。
如果你需要在他构造之前的某个地方调用它,你还需要修改你构造他的位置。
系统会在使用完成后自动销毁并释放非静态类,因此非静态类相对安全,而静态类在程序完成后销毁并驻留在内存中直到销毁,因此出错的可能性会更大。
建议不要使用太多的静态类,在正确的时间使用它们。
-
第一句话:静态类和类成员用于创建无需创建类实例即可访问的数据和函数。
由此我们可以得出结论,我们不需要实例来创建非静态类,我们可以直接使用它。
句子 2:静态类成员可用于分离独立于任何对象标识的数据和行为:无论对象发生什么,这些数据和函数都不会随之更改。
我理解这句话的意思是,一旦创建了一个静态类,静态类就会独立于原来的实体,它们不会因为改变实体的方法而影响静态类。
第 3 句:当类中没有依赖于对象标识的数据或行为时,可以使用静态类。
这句话把我吵醒了,他切入主题,告诉我们什么时候可以声明静态,当我们的静态类不依赖于主题并且它可以完全独立时,我们可以声明它是静态的。
摘要:1 静态类可以直接调用,不需要声明实体。
2 静态类不会因为主题的变化而影响主题。
3 只有当静态类声明不依赖于主体时,才能声明它们。 介绍很清楚。 希望能有所帮助。
-
我给你举个例子!!
静态方法用于表示类的行为,而不是其对象的行为。
例如,将学生分配到班级的任务是所有学生作为一个小组的事情,而不仅仅是单个学生的事情。
静态方法是在定义中使用 static 关键字声明的,该关键字位于修饰符和方法返回的类型之前,格式为:[Method Modification] static return value type 方法名称(参数列表)。
注意:它的访问关键字,即方法修饰符,与普通方法相同,但很少使用私有,因为通常需要外部类来访问这些定义的静态方法。
调用静态方法时,不需要实例化类的对象,只需直接引用即可。 这就是静态类和方法如此特别的原因,也是它们与普通类和方法的不同之处!
示例:下面给出了一个使用静态方法计算矩形面积的典型示例。
Rectangle 类。
/<\summary>
public class sqrt
上面的方法用静态方法getarea()创建一个类sqrt来计算一个矩形的面积,使用起来非常简单,这个静态方法可以用下面的**来调用:
static void main(string args)
使用 sqrt 类直接引用此方法,而无需实例化矩形对象。
下面网友说得很对,这个静态方法不能实例化,比如:
sqrt shili =new sqrt();
是错误的,首先是静态方法描述的是集合体,而不是对象,因此无法实例化。
静态成员:数据成员、方法成员和类型成员。 成员可以是常量、字段、对象等。
静态字段需要使用静态:
例如:static int total ;
静态成员属于类,因此请使用“类名”。 静态字段”。
int i=200;
当然,c中还有其他的静态成员,比如静态方法!! 需要注意的是,静态方法只能直接访问静态类!
静态类:它仍然具有对象的抽象,并且可以将类声明为静态以指示它仅包含静态成员。 不能使用 new 关键字创建静态类的实例。
静态类加载了 .将自动加载 .NET Framework 公共语言运行时 (CLR)。
静态类功能:仅包含静态成员。 无法实例化。 是密封的。 不能包含实例构造函数。
静态类就像一个容器,包含静态方法、静态字段、类使用的属性、大量参数以及其他一些有助于完成任务的东西。 可以简单地理解为一个不能通过放置静态方法和静态属性来实例化的类!
它可以是一样的,没有要求,最好不要使用相同的。 影响程序的可读性。 不利于将来的修改和错误检查。 你自己很难分辨出其中的区别,如果你想让别人阅读你的程序,那就更难理解了。