A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郗振龙 中级黑马   /  2012-5-3 10:22  /  3271 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

静态方法和动态方法的区别

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

9 个回复

倒序浏览
http://hi.baidu.com/116389199/blog/item/8f12dfcf4521100493457eb7.html
有时间可以看看

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
静态方法是在内存对于类只存在一个,所以调用的时候可以用 类.静态方法(),而非静态方法是跟随对象的,每次New了一个对象,就会存在这样一个方法,调用的时候必须得先实例化类,然后用对象调用

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
是静态方法和动态方法的区别,不是静态方法和实例方法的区别。
这里讲的静态方法是相对于动态的方法而论的。
静态方法包括(静态方法、实例方法);
而动态的方法是通过 反射 而得到的。
在程序运行时产生。不是在编译时产生,在IL之前。

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
带有STATIC的方法不能直接访问到前面不带有STATIC的变量,而非静态方法则可以访问。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
静太方法可以通过类名直接访问,动态方法要类的实例化才能访问。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
简单的说:如果一个方法声明中含有static 修饰符,则称该方法为静态方法。如果一个方法声明中没有static 修饰符,则称该方法为非静态方法也就是实例方法
静态方法不对特定实例进行操作;非静态方法是对类的某个给定的实例进行操作,可以用this 来访问该方法。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
静态变量使用 static 修饰符进行声明,在类被实例化时创建,通过类进行访问;
不带有 static 修饰符声明的变量称做非静态变量,在对象被实例化时创建,通过对象进行访问;
然后就是
一个类的所有实例的同一静态变量都是同一个值,同一个类的不同实例的同一非静态变量可以是不同的值
静态函数的实现里不能使用非静态成员,如非静态变量、非静态函数等

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
1、使用方法上的区别:
动态方法,在使用时需要先创建实例,才能调用实例方法;而静态方法则不需要,直接使用即可。
2、性能上的区别:
静态方法效率高,但是他会常占内存,占用内存空间,而动态方法在调用完后会自动释放,节省内存空间。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马