3.10学习内容

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.工厂设计模式

只有唯一的一份


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值