黑马程序员技术交流社区

标题: 关键字static [打印本页]

作者: 赵文杰    时间: 2012-5-23 19:35
标题: 关键字static
             被static关键字修饰的方法有什么特点?
作者: 8161776    时间: 2012-5-23 20:30
被static关键字修饰的方法有什么特点?

static意思是静态的,他修饰的方法或者属性存放在静态区,
是共享的,公共的,不属于任何一个对象,
所以可以直接通过类名.来调用,不需要new对象,

作者: 信义明    时间: 2012-5-23 20:31
被static修饰的方法叫静态方法,静态方法只能访问静态成员。而非静态方法既可以访问静态成员也可以访问非静态成员。因为静态优先于对象存在,所以静态方法中不可以定义this,super关键字。还有就是主函数也是静态的,在调用静态方法时不用new对象,直接用类名.静态方法的形式即可。
以上是我在学习中总结的,如有不足还望指出
作者: 付左军    时间: 2012-5-23 22:48
被static修饰的方法,是静态的,通过类名调用
作者: 张成龙    时间: 2012-5-23 23:08
静态方法只能访问静态成员。非静态方法既可以访问静态也可以访问非静态。
静态方法中不可以定义this,super关键字。因为静态优先于对象存在。所以静态方法中不可以出现this。
静态方法可以不用创建对象直接通过类名.方法调用
作者: 孙如意    时间: 2012-5-23 23:14
既然定义为静态方法,就是方便用类名调用的,仅做充不.......{:soso_e176:}
作者: 钟成军    时间: 2012-5-23 23:19
还不错,更加理解了
作者: 于潇    时间: 2012-5-23 23:27
使用static声明的属性和方法可以由类名称直接调用,static属性是所有对象共享的,所有对象都可以对其进行操作。
用 static的修饰的变量和方法,实际上是指定了这些变量和方法在内存中的“固定位置”-static storage。既然要有“固定位置”那么他们的 “大小”似乎就是固定的了,有了固定位置和固定大小的特征了,在栈中或堆中开辟空间那就是非常的方便了。如果静态的变量或方法在不出其作用域的情况下,其 引用句柄是不会发生改变的。
引用static的方法和变量,不需要和实例捆绑在一起,这可以提高代码的编写的效率
如果需要创建一个脱离于实例的变量或方法(只与整个类有关),那么用static作修饰是再好不过了,如我们经常看到要统计实例实现的个数(通常的例子就是计数)

作者: 曾_强    时间: 2012-5-24 00:32
Static关键字:
Static可修饰内容:1、可修饰变量、属性;2、可修饰方法;3、可修饰代码块。

Static int data;
说明data为一个类的共享变量,属于整个类。

public static void printData() {}
表明此类方法为静态方法。静态方法不需要new对象,直接使用类名调用。

当static修饰一个代码块的时候,就为静态代码块。一般都会作为初始化静态成员,它会随着类的加载而执行。

另外需要注意的是理解:静态方法不允许访问类的非静态成员,包括成员的变量和方法。必须使用类调用。最好的理解就是main方法是静态的,而且主方法是整个程序的入口,而在进入入口的时候,系统中是没有任何对象的。

还用静态方法不能被覆盖,需要注意。子类可以继承父类静态方法,但不能覆盖重写。

作者: 游兴钟    时间: 2012-5-24 03:35
jiyixuan 发表于 2012-5-24 00:32
Static关键字:
Static可修饰内容:1、可修饰变量、属性;2、可修饰方法;3、可修饰代码块。

修饰的变量只有成员变量,局部变量无法用static修饰
作者: 王超    时间: 2012-5-24 10:24
用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员。
作者: lyz1024    时间: 2012-5-24 10:29
不管是身处上坡还是下坡,恰当的时候必定要理解让自己停下来,驻足回看是为了更好地迈进。

风物长宜放眼量

作者: 马林贺    时间: 2012-5-24 10:38
static 修饰的方法:

只要你调用了这个类,这个方法在一开始就会自动加载到静态方法区中。

调用的方法是  类名.方法名   

注意的是:

在静态方法里面,不可以访问非静态的方法
作者: 杨康    时间: 2012-5-24 11:39
static用于修饰成员(成员变量和成员函数)
被修饰的成员具备以下特点:
1.随着类的加载而加载
2.优先于对象存在
3.被所有对象共享
4.可以直接被类调用
使用注意:
1.静态方法只能访问静态成员
2.静态方法中不可以有this、super关键字
3.主函数必须是静态的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2