《JAVA从入门到精通视频》笔记十:static和this

    科技2024-03-29  81

    1.static 1)static翻译为“静态”; 2)所有static关键字修饰的都是类相关的,类级别的; 3)所有static修饰的,都是采用“类名.”的方式访问; 4)static修饰的变量:静态变量; 5)static修饰的方法:静态方法。

    变量的分类:        变量根据声明的位置进行划分:               在方法体当中声明的变量叫做:局部变量;               在方法体外声明的变量叫做:成员变量;        成员变量又可以分为:               实例变量;               静态变量;

    2.静态变量        静态变量在类加载时初始化,不需要new对象。静态变量存储在方法区中(注意不是堆中)。

           * 静态变量:类级别,存放在方法区中;        * 实例变量:对象级别,存放在堆中;        * 局部变量:存放在栈中。

           静态变量/方法可以使用“类名.”的方式访问,也可以使用“引用.”的方式访问,但是静态变量/方法不建议使用“引用.”的方式访问。实例变量/方法只能使用“引用.”的方式访问。

           在空引用访问实例相关的时候,会出现空指针异常。空引用访问静态相关时,不会发生异常。

    3.静态代码块 使用static关键字可以定义:静态代码块。 语法:

    static{ java语句; }

    static静态代码块在类加载时执行,并且只执行一次。注意:静态代码块在main方法执行之前执行,静态代码块一般是按照自上而下的顺序执行的。

    静态代码块的作用:静态代码块这种语法机制是SUN公司给Java程序员准备的一个特殊的时机,叫做类加载时机。程序员可以在静态代码块做初始化或提示等。

    4.实例代码块 实例代码块语法很简单,就是一对大括号:

    { Java语句 }

    实例代码块在什么时候执行?实例代码块不是在类加载时执行的,只要构造方法执行,则实例代码块必然在构造方法执行之前自动执行。 实际上,这也是SUN公司为Java程序员准备的一个特殊的时机,叫做对象构建时机。

    5.this        一个对象是一个this。this是一个变量,是一个引用。this中保存当前对象的内存地址,指向自身。所以,严格意义上来说,this代表的就是“当前对象”。this存储在堆内存当中对象的内部。

    注意:        - this只能使用在实例方法中。 谁调用这个实例方法,this就是谁。所以this代表的就是当前对象。        - this不能使用在静态方法中。        - “this.”大部分情况下是可以省略的,省略时,默认还是访问“当前对象”。(方法中局部变量与实例变量同名的 情况下"this."不能省略)

    6.this()的用法        this除了可以使用在实例方法中,还可以使用在构造方法中。可以在当前的构造方法中调用本类的另一个构造方法,可以使用以下语法格式:

    this(实际参数列表);

    这种语法可以做到:代码复用。 注意:        对于this()的调用只能出现在构造方法的第一行,且一个构造方法中只能使用一次。

    public class StudentTest { String name; int age; public StudentTest(){ this("zhangsan",18); } public StudentTest(String name,int age){ this.name = name; this.age = age; } }
    Processed: 0.012, SQL: 8