7static关键字、代码块、static代码块、static代码块 普通代码块 构造方法 执行顺序、package包、封装、this关键字、继承、权限修饰符、方法重写

# java
## 介绍
java基础
#### static
static 修饰的成员变量叫做静态成员变量
静态成员变量存储在方法区中
静态成员变量被当前类的对象共享
静态成员变量可以使用对象名.属性名访问
但是为了防止一个对象对静态成员变量修改造成众多对象的变化,也可以使用类名.属性名访问(推荐)

没有static修饰的成员变量叫做实例变量
实例变量存储在堆内存中
实例成员变量是每个对象独有的

static修饰的成员方法叫做静态成员方法
静态成员方法中只能直接使用静态成员方法,(可通过对象间接调)
静态成员方法中不能使用this关键字,this代表当前对象,谁调用这个方法就会指向哪个对象,如果是类调用,this不能指向
静态成员方法可以使用对象名.方法名方式调用,但是静态成员方法推荐使用类名.方法名
静态成员方法只能直接调用其他静态成员方法(可间接调用)

没有static修饰的成员方法叫做实例成员方法
实例成员方法既可以直接使用静态成员变量,也可以直接使用实例成员变量
实例成员方法只能使用对象名.方法名调用
实例成员方法可以使用this关键字,this关键字也只能在实例成员方法中使用
实例成员方法既能直接调用其他静态成员方法,也能直接调用其他实例方法

在构造方法中,往往不会对静态成员变量进行初始化,不能因为一个新对象的产生就修改公共对象使用的静态成员变量
在构造方法中,往往只会对实例成员变量进行初始化

静态的跟静态的,实例的都行

#### 代码块
定义 没有方法头的代码
类型 普通代码块 
    每次实例化对象时都会执行一次全部的代码块
    一般可以用于初始化实例成员变量
    静态代码块
#### static代码块
静态代码块只会执行一次,当类的字节码进入内存时执行一次,后续不会再执行了
静态代码块一般用于给静态成员变量赋初始值,不能给实例成员变量赋值
#### static代码块 普通代码块 构造方法 执行顺序
static代码块>普通代码块>构造方法
#### package包
访问权限控制
包名:域名倒着小写
#### 封装
封装就是把对象的属性和方法结合为一个独立的整体,并尽可能隐藏对象的内部实现细节,仅仅对外公开使用的接口
权限修饰符
定义任何一个类,都应该进行封装处理。
1所有的属性都是private,
2给属性提供共有的get set方法去获取属性值,设置属性值。可以在set方法中对属性值做特殊的处理
3提供两个构造方法
优点:
1提高代码的安全性
2提高代码的复用性
3体现高内聚低耦合
#### this关键字
创建一个对象分为如下四步
1分配对象空间,并将对象成员变量初始化为0或空
2执行属性值的显示初始化
3执行构造方法
4返回对象的地址给相关的变量

this的本质就是创建好的对象的地址

this常用用法
1区分局部变量和成员变量
2构造方法重载时,他们之间相会调用会使用
this在调用构造方法前不允许有其他代码

#### 继承
private修饰的成员变量不可以被继承,仅能在当前类内部使用
子类继承父类,可以获得父类的全部属性和方法(除了父类的构造方法),但不见得可以直接访问(比如父类的私有属性和方法)
父类可以理解为众多子类公共属性和公共方法的集合
#### 权限修饰符
范围从小到大 private<default<protected<public
private当前类使用,如果是父类的方法,不可被子类继承
default同包可继承可调用(同一个类 同一个包)
protected跨包可继承可调用(同一个类 同一个包 子类)
public 当前项目所有包所有类可继承可调用(所有包所有类)
#### 方法重写
当子类中定义了和父类同名的属性时,父类的属性默认隐藏了
如果在子类中想要继续使用父类中隐藏的同名属性,使用super关键字调用

子类中对于父类同名方法的再次定义,子类中如果重写了父类的方法,父类的方法会默认隐藏,
在子类中如果想要调用父类中隐藏的方法可以使用super关键字

为什么需要进行方法重写?
1子类对父类的方法中实现的功能或算法并不满意,子类可以实现相同的功能,但是用不同的算法
2子类要在父类方法基础之上做到更多的事
3子类拒绝继承父类的方法

方法重写注意事项
1重写发生在子类中
2方法名必须相同
3参数列表必须相同
4返回值类型必须相同
5子类方法的访问修饰符大于等于父类方法的访问修饰符(重写的目的就是为了实现更多的功能)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JavaHenShuai

你的鼓励将是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值