黑马程序员技术交流社区
标题:
static final修饰符
[打印本页]
作者:
宋红旺
时间:
2011-9-15 18:30
标题:
static final修饰符
谁来给我说说这两个修饰符到底是怎么用的,谁能给简单的说说,越通俗易懂的越好。谢谢
作者:
匿名
时间:
2011-9-15 18:34
static是静态修饰关键字,可以修饰变量和程序块以及类方法:当你定义一个static的变量的时候jvm会将将其分配在内存堆上,所有程序对它的引用都会指向这一个地址而不会重新分配内存;修饰一个程序块的时候(也就是直接将代码写在static{...}中)时候,虚拟机就会优先加载静态块中代码,这主要用于系统初始化;当修饰一个类方法时候你就可以直接通过类来调用而不需要新建对象。
final可以修饰变量、方法及类,当你定义一个final变量时,jvm会将其分配到常量池中,程序不可改变其值;当你定义一个方法时,改方法在子类中将不能被重写;当你修饰一个类时,该类不能被继承
我觉得这个很通俗
作者:
匿名
时间:
2011-9-15 18:57
面向对象就是要有对象
而static就是可以不要创建对象,直接用就是了
final 你就暂且把它理解为结了账离开柜台,以后都不能改了
够简单吧
作者:
郭亚飞
时间:
2011-9-15 19:17
static
修饰符,能够与属性、方法和内部类一起使用,表示静态的。类中的静态变量和静态方法能够与类名一起使用,不需要创建一个类的对象来访问该类的静态成员,所以,static修饰的变量又称作“类变量”。类变量是在类装载的时候就会被初始化,即只要类被装载,不管是否使用了static变量,都会被初始化。
static属性的内存分配:一个类中,一个static变量只会有一个内存空间,虽然有多个类实例,但这些类实例中的这个static变量会共享同一个内存空间。
static的基本规则:
一个类的静态方法只能访问静态属性
一个类的静态方法不能直接调用非静态方法
访问控制权限允许时,static属性和方法可以使用对象名加“.”的方式调用,也可以使用实例加“.”的方式调用
静态方法中不存在当前对象,因而不能使用this,也不能使用super
静态方法不能被非静态方法覆盖
构造方法不允许声明为static的
注,非静态变量只限于实例,并只能通过实例引用被访问。
final
修饰符,在Java声明类、属性和方法时,可以使用关键字final来修饰,final所标记的成分具有终态的特征,表示最终的意思。
final的基本规则:
final标记的类不能被继承
final标记的方法不能被子类重写
final标记的变量(成员变量或局部变量)即成为常量,只能赋值一次
final标记的成员变量必须在声明的同时赋值,如果在声明的时候没有赋值,那么只有一次赋值的机会,而且只能在构造方法中显式赋值,然后才能使用
final标记的局部变量可以只声明不赋值,然后再进行一次性的赋值
final一般用于标记那些通用性的功能、实现方式或取值不能随意被改变的成分,以避免被误用
注:如果将引用类型(即,任何类的类型)的变量标记为final,那么,该变量不能指向任何其它对象,但可以改变对象的内容,因为只有引用本身是final的。
作者:
匿名
时间:
2011-9-15 20:38
static 静态的 修饰类中得成员(成员变量和成员方法) 静态的方法只能访问静态的
final 终结的 修饰 类 变量 方法(函数) 顾名思义 被final修饰后的类就不能在干其他的动作,即不能被继承了、
修饰变量就不能被改变了 就变成了一个常量,这里还设计到常量的书写格式;
修饰方法就不能被 重写了
我感觉最主要的就是这些了 献丑了 呵呵!
作者:
匿名
时间:
2011-9-16 10:08
static 是静态的 用于静态方法 成员变量
final 是常量 用于定义一些衡量不变的值 如 男 女 等
作者:
匿名
时间:
2011-9-16 10:34
static 修饰的方法或变量使其静态。
final 修饰变量使其变成常量,常量不能修改,比如 π=3.14 一般是不可以修改。
作者:
匿名
时间:
2011-9-16 13:47
标题:
回复 7 # 的帖子
static是静态修饰符
static final 修饰常量 ,常量就不用说了
作者:
匿名
时间:
2011-9-16 13:52
标题:
回复 楼主 的帖子
static是静态修饰符
static final 修饰常量 ,常量就不用说了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2