黑马程序员技术交流社区
标题:
/*static方法*/
[打印本页]
作者:
James_01
时间:
2016-6-23 17:54
标题:
/*static方法*/
/*static方法*/
static方法就是没有this的方法。
在static方法内部不能调用非静态方法,反过来是可以的。
而且可以在没有创建任何对象的前提下,
仅仅通过类本身来调用static方法。
这实际上正是static方法的主要用途。
static关键字的基本作用,简而言之,一句话来描述就是:
方便在没有创建对象的情况下来进行调用(方法/变量)。
对于静态方法来说,是没有this的,因为它不依附于任何对象,
既然都没有对象,就谈不上this了。
并且由于这个特性,在静态方法中不能访问类的非静态成员变量
和非静态成员方法,因为非静态成员方法/变量都是必须依赖
具体的对象才能够被调用。
在非静态成员方法中是可以访问静态成员方法/变量,
class MyObject {
private static String str1 = "staticProperty"; //静态成员变量
private String str2 = "property"; //非静态成员变量
//空参构造
public MyObject() {
}
public void print1() {
print2();
}
//静态成员方法
public static void print2() {
//! print1(); //这是不对的,静态不能调用非静态,因为只有具有具体对象后非静态方法才能被调用
}
}
/*
总结:
如果说想在不创建对象的情况下调用某个方法,
就可以将这个方法设置为static。
我们最常见的static方法就是main方法,
为什么main方法必须是static的?因为程序在执行main方法的时候没有创建任何对象,
因此只有通过类名来访问。
备注,即使没有显示地声明为static,类的构造器实际上也是静态方法
*/
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2