静态方法与非静态方法的区别

简介: 静态方法与非静态方法的区别

静态方法static(类方法)和 非静态方法(实例方法)的区别:一、调用对象、引用变量不同;二、调用方法不同;三、生命周期不同。方法主要分为三种:1.构造方法;2.非静态方法(普通方法/实例方法);3.静态方法(类方法)。


一、调用对象、引用变量不同


静态方法:是使用static关键字修饰的方法,又叫类方法.属于类的,不属于对象, 在实例化对象之前就可以通过类名.方法名调用静态方法。 (静态属性,静态方法都是属于类的,可以直接通过类名调用)。


A.在静态方法中,可以调用静态方法。


B.在静态方法中,不能调用非静态方法。


C.在静态方法中,可以引用类变量(即,static修饰的变量)。


D.在静态方法中,不能引用成员变量(即,没有static修饰的变量)。


E.在静态方法中,不能使用super和this关键字


非静态方法:是不含有static关键字修饰的普通方法,又称为实例方法,成员方法。属于对象的,不属于类的。(成员属性,成员方法是属于对象的,必须通过new关键字创建对象后,再通过对象调用)。


A.在普通方法中,可以调用普通方法。


B.在普通方法中,可以调用静态方法


C.在普通方法中,可以引用类变量和成员变量


D.在普通方法中,可以使用super和this关键字


二、调用方法不同


静态方法可以直接调用,类名调用和对象调用。(类名.方法名 / 对象名.方法名)


但是非静态方法只能通过对象调用。(对象名.方法名)


三、生命周期不同


静态方法的生命周期跟相应的类一样长,静态方法和静态变量会随着类的定义而被分配和装载入内存中。一直到线程结束,静态属性和方法才会被销毁。(也就是静态方法属于类)


非静态方法的生命周期和类的实例化对象一样长,只有当类实例化了一个对象,非静态方法才会被创建,而当这个对象被销毁时,非静态方法也马上被销毁。(也就是非静态方法属于对象)


相关文章
|
2天前
静态方法 普通方法 和 构造方法三者的区别
静态方法 普通方法 和 构造方法三者的区别
60 0
|
6月前
|
数据处理 Python
类的实例方法和静态方法的使用场合区别
类的实例方法和静态方法的使用场合区别
58 0
|
C++
C++类的静态方法
C++类的静态方法
64 0
|
Java
Java中静态方法、成员方法、构造方法三者的区别
Java中静态方法、成员方法、构造方法三者的区别
259 0
|
开发者 Python
类方法和静态方法 | 学习笔记
快速学习类方法和静态方法,介绍了类方法和静态方法系统机制, 以及在实际应用过程中如何使用。
82 0
类方法和静态方法 | 学习笔记
|
开发者 Python
类方法和静态方法回顾|学习笔记
快速学习类方法和静态方法回顾
77 0
类方法和静态方法回顾|学习笔记
|
Python
一日一技:什么情况使用静态方法和类方法?
一日一技:什么情况使用静态方法和类方法?
206 0
一日一技:什么情况使用静态方法和类方法?
|
C++ 小程序
c++类的实例化,有没有new的区别
A a; A * a = new a(); 以上两种方式皆可实现类的实例化,有new的区别在于: 1.前者在堆栈中分配内存,后者为动态内存分配,在一般应用中是没有什么区别的,但动态内存分配会使对象的可控性增强。
1173 0
|
存储
成员变量和方法的区别?
成员变量有两种: 实例变量 类变量(也称静态变量,静态域)
130 0