`
qq_24665727
  • 浏览: 118034 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

关键字static和final

 
阅读更多

static 与final
1.变量的声明和内存地址的开劈
 class A{
 
 }
 A   a;(这样没有开辟内存空间,只有new对象时才有)
 
 

static关键字
静态的 :可以用来修饰类,属性,方法,代码块

1.属性
如果用static来修饰,则变量的内存在静态区。(被共享);
当属性定义为static则该属性为该类所有的对象共享,
以最后一次改变为所有对象里的最终值;
static属性,又叫类属性
调用方式:1.可以通过对象调用;
 2.可以直接通过类名调用;

2.静态方法:
static方法中不能调用非静态属性
(重写失去意义)方法如果定义为static ,对象在调用方法的时候只和对象定义的类型相关
static方法叫做类方法。这一类对象共享的方法;
调用方式:直接用类名调用;
 可以通过对象调用
一般情况下。static属性和方法直接通过类名来调用;

3.代码块

public class A()[
 public static void main(String[] args){
  System.out.println("A");
 }
//代码块
 {
  System.out.println("b"); 
 }

 //静态代码块
 {
  System.out.println("c"); 
 }

}

4.类前面。static修饰内部类;

 

 

java程序的执行过程!!!!
编写:.java文件-->翻译成.class字节码文件-->执行.class文件
1首先       .class文件加载到内存中(加载类)
 首先加载static属性,静态块,静态方法(不执行,只加载);加载到类的内存空间
2.执行主函数    在创建这个类的对象时,(再将非静态的方法,加载到对象的空间里面),,,,将非静态代码块,非静态属性执行
 在加载的过程当中,属性和代码块会先执行,方法必先等到调用时在执行;

 

*****************************************************************************

final关键字
 final可以用来修饰类,属性,和方法
 final,最终的,不可修改的
 类似于C语言里的const
1.final修饰类的时候,表示该类不可以被继承
2.final修饰方法时,不可以被重写,可以重载;
3.final修饰属性时,必须初始化并且只能一次,不可以改变值;
class Student {
 public final String n;
 
 public Student(){
  n="S";
 
 } 
 
}
这样定义也行,因为构造方法先实行(除了static修饰的方法和属性之外)


4.final修饰局部变量,定义时可以不赋值,但是只能赋值一次;
5.final 修饰参数,在参数前加final,,传入方法后只能用,不能改变。。(防止传入的值被修改;)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics