3.10学习内容

    xiaoxiao2021-03-25  84

    this关键字

    1.this是一个指向自身对象的引用变量,每一个对象都默认有一个this

    2.this的作用:

    ①调用成员变量

    this.name = name;

    如果成员变量与局部变量同名时,this必须加;如果不同名,可以不加

    ②调用成员方法

    this.shout();

    shout();

    因为没有完全相同的两个方法,所以this可以省略

    ③调用构造方法

    this(name,age,sex);

    注意:this(name,age,sex);必须是第一条语句

    static关键字

    1.静态变量   非静态变量

    static String className;

    静态变量是属于类的,不管有几个对象只有一份,也叫类变量

    String sex;

    非静态变量是属于对象的,每一个对象都有单独一份,叫实例变量(对象变量)

    2.静态变量与非静态变量的联系和区别

    联系:都是成员变量

    区别:

    ①内存里的位置:

    静态变量:方法区

    非静态变量:堆

    ②份数

    静态变量:只有一份

    非静态变量:每个对象单独有一份

    ③调用的方式也不一样

    静态变量:类名.变量名  Student.className

      对象名.变量名  s1.className    (不推荐使用)

    非静态变量:每个对象但都有一份

          对象名.变量名  s1.name

    ④作用的时间不一眼

    静态变量:第一次加载类的时候,在方法区中开辟空间,这时候还没有对象

    非静态变量:创建对象的时候在开辟的空间

    3.静态方法

    public static void showClassName(){}

    作用:调用静态变量和静态方法

    调用方式:Student.showClassName();

                      s1.showClassName();  (推荐不使用)

    4.静态方法中的3不能

    ①静态方法中不能使用非静态变量:因为调用方法的时候可能还没有对象,所以对象的名字也不存在     System.out.println("名字:" + name);

    ②静态方法中不能调用非静态方法:因为调用方法的时候可能还没有对象,所以对象的方法也不存在      study();

    ③静态方法中不能使用this/super:因为调用方法的时候可能还没有对象,this是属于每个对象的

    5.代码块

    局部代码块

    ①位置:方法中

    ②个数:多个

    ③执行顺序:依次执行

    ④局部代码块中定义的变量只能在当前代码中使用

    (成员)代码块

    ①位置:类中

    ②个数:多个

    ③执行顺序:依次执行,先于构造方法执行

    ④作用:没啥用。。

    (匿名内部类,没有构造方法,在代码块中对成员变量初始化)

    每个对象都有一份

    静态代码块

    ①位置:类中

    ②个数:多个

    ③执行顺序:依次执行

    ④执行时间:加载类的时候执行,先于代码块和构造方法

    ⑤作用:进行全局性的初始化操作

    1.数据库链接的初始化操作

    2.工厂设计模式

    只有唯一的一份

    转载请注明原文地址: https://ju.6miu.com/read-26181.html

    最新回复(0)