Java基础之封装、this、static、权限控制、继承(面向对象)

一、面向对象

1.1 This

1.1.1 是什么

this:是每个对象中,保存自身内存地址的一个引用类型变量(成员变量)

因此this无法在静态上下文使用

1.1.2 能干什么

1 用在成员方法和构造方法中,区分同名的局部变量和成员变量

2 用在构造方法中,用于重载调用当前类中其他构造方法,提高代码重用性

3 return this可以链式调用

1.1.3 怎么用

1.1.3.1 区分成员变量和局部变量

image-20240730183825455

image-20240730183838784

1.1.3.2 重载调用构造方法

image-20240730183909017

1.1.3.3 链式调用

image-20240730183931441

1.1.4 注意

image-20240730183958493

this无法在静态上下文使用

1.2 Static

1.2.1 是什么

static关键字,是修饰静态的修饰符

1.2.2 能干什么

1 静态修饰变量

2 静态修饰方法

3 修饰静态语句块

1.2.3 怎么用

image-20240730184259535

image-20240730184307844

1.2.4 实例语句块

一般对象初始化写在构造方法中,很少写实例语句块

image-20240730184340241

1.2.5 静态和成员的应用场景

静态变量是类的所有对象共有的属性和值

成员变量是类的所有对象共有的属性,值可以相同可以不同

1.3 封装

1.3.1 软件包机制

1.3.1.1 Package

package软件包机制,方便分类管理,可以解决命名冲突问题

一般采用公司域名倒叙的方式命名

在Java中.package语句 是限制class文件的保存位置,与Java文件无关

package语句 可以不写,如果写的话,必须写在Java源文件第一行

1.3.1.2 import

image-20240730185106463

image-20240730185228690

1.3.1.3 注意

image-20240730185252481

// 注意 : eclipse编程中,按空格和回车的时候 会自动导包,此时需要注意,导入的是否是正确的

1.3.2 权限控制

image-20240730185325227

1.4 继承

1.4.1 是什么

概念:从已有类中派生出新的类,新的类会拥有父类的属性和行为

  • Java只支持单继承,这样使Java类关系比较简单
  • 一个类可以被很多类继承
  • Java中继承是可以被传递的
  • 如果一个类没有显示继承另一个类的话,默认继承object,object是Java提供的根类(祖宗)

1.4.2 能做什么

继承目的:代码复用

1.4.3 怎么用

通过extends表示 class 类名 extends 父类名 {}

image-20240730185857583

1.5 super

1.5.1 是什么

super : 在子类中,通过this表示当前对象,通过super表示父类

1.5.2 能干什么

1 用在成员方法和构造方法中,区分分子类同名的属性

2 用在构造方法中,用于重载调用父类的构造方法super(),必须写在子类构造方法第一行

而this()也必须在构造方法第一行,所以this()和super()不能同时出现

如果子类构造中,没有写this(…),也没有写索super(…),则第一行默认有super()去调用父类无参构 造

this和super都不能在静态上下文使用

1.5.3 怎么用

1.5.3.1 区分父子类同名属性

image-20240730190944346

1.5.3.2 调用父类构造

子类创建对象,一定会执行父类构造方法

image-20240730191018149

1.5.4 注意

this和super都不能在静态上下文中使用

而 this() 也必须在构造方法第一行,所以 this() 和 super() 不能同时出现

image-20240730191434608

二、覆写override

2.1 是什么

方法覆写:子类对父类方法进行重新编写

当父类功能无法满足子类需求的时候,子类可以根据需求进行覆写

覆写条件:

1 必须有继承关系的体系中

2 方法名,参数列表,返回值必须一致

3 不能比原方法有更低级的访问权限

4 不能比原方法有更宽泛的异常

5 方法覆写,特指成员方法(只有成员方法可以覆写)

image-20240730191951559

2.2 应用场景

当父类功能无法满足子类需求时,子类可以根据需求进行覆写

2.3 面试题

image-20240730192100066

三、final

3.1 是什么

final 是个修饰符,表示最终的,不可更改的

3.2 能做什么

  • final修饰的类 不能被继承

  • final修饰的成员方法,不能被覆写

  • final修饰的成员变量,没有默认值,必须显示赋值(不能有不赋值的情况),不能二次赋值

  • final修饰的静态变量,是常量,没有默认值,必须显示赋值(不能有不赋值的情况),不能二次赋值

一般会和public一起使用,psf:public static final,并且常量名,一般全大写

  • final修饰的布局变量,不能二次赋值

3.3 怎么用

image-20240730192730280

3.4 深入final

能二次赋值

  • final修饰的静态变量,是常量,没有默认值,必须显示赋值(不能有不赋值的情况),不能二次赋值

一般会和public一起使用,psf:public static final,并且常量名,一般全大写

  • final修饰的布局变量,不能二次赋值

3.3 怎么用

[外链图片转存中…(img-poEXPqzR-1722338963027)]

3.4 深入final

image-20240730192750490

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值