类方法与对象方法

Posted silver-aircraft

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类方法与对象方法相关的知识,希望对你有一定的参考价值。

public class Test


/**
* 下面这个方法就是静态方法,就是类方法
* 静态方法必须定义成static的,在类Test被实例化以前就已经存在于内存中
* 静态方法使所有该类的实例也就是对象共有的方法
*/
public static void f1()

System.out.println("我是静态方法~~~~~");


/**
* 下面这个方法就是一般的非静态方法,就是对象方法~~
* 只有在类Test被实例化以后,才被加载到内存中,具体存储在堆中,
* 非静态方法是每个该类的实例也就是对象所私有的
*/
public void f2()

System.out.println("我是非静态方法~~~~~");


public static void main(String[] args)

Test t=new Test();

/**
* 静态方法必须既可以用类名直接调用,也可以用对象来调用
*/
Test.f1();//正确
t.f1();//正确,但不推荐这么用~~

/**
* 非静态方法只能用对象来调用~~~
*/
//Test.f2();//正确
t.f2();//正确


技术图片

 

 项目中的SecurityUtils.getSubject().getPrincipal()应该就是类方法,虽然没有看源码,但是可以推测这个方法是静态的。

以上是关于类方法与对象方法的主要内容,如果未能解决你的问题,请参考以下文章

Java中类方法与实例方法的区别

类方法与对象方法

ios开发 oc 的类方法与对象方法

JAVA类与对象---实例变量与类变量的区别,实例方法和类方法的区别

类方法与实例方法的区别与使用

Python中静态方法和类方法的区别