java封装和修饰词小记(static,final)

1.封装

1)为了保证成员变量的安全性,把它设置成私有的,也就是添加private修饰词.

2)给外部提供一对可以访问此成员变量的get()/set()

get():获取

set():设置

3)封装的概念和意义

⾯向对象编程语⾔是对客观世界的模拟,客观世界⾥成员变量都是隐藏在对象内部的,外界⽆法 直接操作和修改。封装可以被认为是⼀个保护屏障,防⽌该类的代码和数据被其他类随意访问。 要访问该类的数据,必须通过指定的⽅式。适当的封装可以让代码更容易理解与维护,也加强了 代码的安全性。

2.java权限修饰符

1.权限修饰符/访问修饰符

在Java中提供了四种访问权限,使⽤不同的访问权限修饰符修饰时,被修饰的内容会有不同的访 问权限:

public:公共的

protected:受保护的

friendly(不填,也称为default):默认的

private:私有的

2.不同权限的访问能⼒

 可⻅, public 具有最⼤权限。 private 则是最⼩权限

编写代码时,如果没有特殊的考虑,建议这样使⽤权限:

a.成员变量使⽤ private ,隐藏细节。

b.构造⽅法使⽤ public ,⽅便创建对象。

c.成员⽅法使⽤ public ,⽅便调⽤⽅法。

方法重写

方法名/方法参数完全一致

修饰符: 子类访问权限要大于等于父类的访问权限

返回值类型: void/基本数据类型: 必须一致

引用数据类型: 子类的返回值类型要小于等于父类的返回值类型(从内存图考虑是包含关系)

3.static关键

static可以修饰:成员方法/成员变量/代码块/内部类

1)静态变量

静态成员变量:

1.属于类

2.类名 .变量名 调用 ps: Student.money

3.静态成员变量是被所有实例化对象所共享

4.只加载一次

普通成员变量:

1.属于对象

2.对象. 变量名 调用

3.有几个对象,就有几个成员变量,并且是独立的

2).静态成员方法

1.在静态方法中不能直接调用非静态的成员变量和非静态的成员方法

2.在非静态的成员方法中可以调用静态方法和静态变量

3.属于类

4.使用 类名.方法名 调用

3).静态代码块

1.在类加载时执行

a.实例化对象

b.使用静态方法

c.使用静态变量

2.作用: 优化代码,提升程序效率

3.静态代码块可以有无数个,但只进行一次性的加载,只有一个

4.在静态代码块中不能调用非静态成员变量

代码块:

1.执行在构造方法之前

2.作用:给成员变量初始化

提取所有构造方法中重复的代码

存在父子类关系:

静态代码块 + 代码块 + 构造方法

父类静态代码块 -> 子类静态代码块 -> 父类代码块 -> 父类构造方法 -> 子类代码块 -> 子类构造方法

静态代码块和静态变量的执行顺序:

先写那个先执行那个 注意: 静态变量先执行,是可以进行运算操作 静态代码块先执行,是不可以进行运算操作,因为变量未定义

xx.java -> xx.class -> 类加载,静态成员变量会随着类信息一起加载到 -> JVM中的方法区中

什么时候进行类加载?

使用类之前会进行类加载操作: 第一次使用类的情况:

1.new对象,实例化对象

2.调用静态成员变量

3.调用静态成员方法

结论:当在使用静态成员时,对象不一定存在 所以,变量不会放在构造方法中进行初始化

final关键词:最后的

1).修饰变量: 不可修改,不可变 -> 常量

基本数据类型: 不可修改

引用数据类型: 不能重新赋值,因为会改变内存中的地址值,但是可以修改引用对象的内容

2).修饰成员方法: 不可被重写

3).修饰类:不可被继承

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值