静态法与非静态法
方法是一系列执行特定任务的语句。方法可以接受输入并产生输出。静态方法和非静态方法是面向对象编程语言中存在的两种类型的方法。静态方法是与类关联的方法。与对象关联的方法称为非静态(实例)方法。在面向对象语言中,方法被用作对存储在对象中的数据进行操作的机制。
什么是静态方法?
在面向对象编程中,静态方法是与类相关联的方法。因此,静态方法不具备对类的特定实例进行操作的能力。可以在不使用包含静态方法的类的对象的情况下调用静态方法。下面是在Java中定义静态方法的示例。在Java中定义静态方法时必须使用static。
使用它所属类的名称,可以调用上面定义的静态方法如下。
MyClass.MyStaticMethod公司();
需要注意的一点是,静态方法只能访问静态成员。
什么是非静态方法?
非静态方法或实例方法是与类中的对象关联的方法。因此,使用定义方法的类的对象调用非静态方法。非静态方法可以访问非静态成员以及类的静态成员。在许多面向对象语言(如C++、C语言、java)中,当调用非静态方法时,调用方法的对象作为隐式参数传递(称为“该”引用)。因此,在方法内部,这个关键字可以用来引用调用该方法的对象。下面是在Java中定义实例方法的示例。
上面定义的实例方法可以使用它所属的类的对象按如下方式调用。
MyClass objMyClass=新建MyClass();
objMyClass.MyInstanceMethod();
静态法和非静态法有什么区别?