【从头开始学JAVA】面向对象总结

本文详细介绍JAVA面向对象的基本概念,包括类与对象、封装、继承、多态等核心特性,并讲解了JAVA的编码顺序、内存模型及异常处理等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.面向对象复习

面向过程–思想–干活的主体是自己
面向对象–思想–干活不是自己,我们是指挥者,不论干啥,都得先创建对象

2.类–把一类事物抽象成一个类型–模板/图纸–class

3.对象–根据图纸创造出来的一个个实际的实例–new

4.关于内存模型

一共分5块,目前我们需要了解的是栈(先进后出)和堆(对象都存入堆中)

5.JAVA编码顺序:

1)抽取形成类:如:Phone/Student/Teacher/Person
2)属性:成员变量,属性还可以封装并提供get/set方法
3)静态代码块:类载的时候加载,只加载-一次
4)构造代码块:如果构造方法有需要提取的共性内容,可以写构造代码块
5)构造方法:创建对象(还可以给对象的属性值赋值),默认存在无参构造
创建对象时立即调用,如果存在继承先调用父类的super()
6)普通方法/成员方法:完成一些业务功能(行为)
7)局部代码块:写在方法中的代码块,调用此方法时才执行
8)在公共类中创建对象进行测试

面向对象三大特性:

1)封装:private,可以封装属性和方法,为了限制(按照我们指定的方式)外界的访问权限
2)继承:extends,子类复制父类的所有内容私有资源不可见,单继承
3)多态:向上造型(把子类对象看做父类类型)–花木兰替父从军.Animal a = new Cat();
向下造型(把之前向上造型的子类对象看回成子类类型)–花木兰解甲归田Cat c=a;
多态最主要的作用就是提供通用解决方案(不管是什么子异常统一用Exception处理)
可以把不同的子类对象都当作父类来看,进而屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,统一调用标准。

6封装

6.1.什么是封装?为了外部可以按照我们提供的方式(方法)来操作属性
6.2.怎么封装?通过private关键字来实现封装
6.3.封装以后怎么办?
1)对于成员变量:提供对应的get/set方法
2)对于方法:在本类的公共方法中调用此私有方法

7.执行顺序:

静态代码块 ->构造代码块->构造方法->局部代码块
构造方法:
与类同名且没有返回值类型的用来创建对象的方法(还可以赋值).
构造代码块:
类里方法外用来提取构造方法共性功能的代码块.
局部代码块:
写在方法里用来控制变量范围的代码块.

8.this

this 可以理解成父类 this=new 本类
1)在成员变量与局部变量同名时,可以用来指定成员变量
2)this可以实现构造方法间的调用,但是不可以互相调用this();
this();- -调用本类无参构造this(" ")–调用本类的含参构造

9.继承

java只支持单继承,关键字:extends
继承可以传递(一脉相传)
父类的私有资源,子类不可见(不可用)
是一种is a的强耦合

10.super

super 可以理解成 父类super=new 父类
super表示父类对象的一个引用,如果出现了同名资源,可以通过super指定
super();- -调用父类无参构造super(" ")–调用父类的含参构造

11.构造函数/构造方法

构造方法是一个特殊的方法
1)写法:与类同名,并且没有返回值类型
2)触发时机:创建本类对象时会自动触发构造函数
3)作用:创建对象或者给对应对象的属性赋值(可选)
4)构造函数可以重载,全参构造一般用于给对象的全属性赋值
5)默认存在无参构造,如果添加了含参构造.默认无参构造会被覆盖,所以要手动添加

12.构造代码块:类里方法外,用于提取所有构造方法的共性,
优先于构造方法执行

13.局部代码块:方法里,用于控制变量的作用范围,
调用此局部代码块所在的方法时才会执行

执行顺序:
构造代码块->构造方法->局部代码块

14.this

14.this代表的是本类的一个引用对象
1)变量名相同时,实现本类成员变量的调用,写法:this.sum
2)实现构造方法之间的调用,写法:要在首行 this();

15.继承

1)通过关键字extends建立关系
2)继承相当于子类复制了一份父类的资源,只不过私有资源不可见
3)java只支持单继承,并且还可以传递

16.多态总结:

1.同一种事物的多种表现形式,可以把多种子类都当作父类来看,统一标准
2.实现多态的前提是?
继承+重写
3.多态的特点?
1)父类引用指向子类对象
2)编译看左边,运行看右边
4.多态的使用
1)成员变量:父类
2)成员方法:父类的声明&子类的实现
2)静态方法:父类如果父子类有同名静态方法,使用的是父类的
静态资源可以继承,属于类资源,静态不可以重写

17.异常

异常结构 异常信息 报错行号
继承结构
异常的处理方式
捕获–自己解决try-catch
抛出–让别人去解决,throws
谁调用抛出异常的方法,谁调用就需要解决这个问题(捕获处理/继续向上抛出)
不要把异常抛给main(),因为没人解决了

18.static:被修饰的资源是静态资源 ,特点:

1)优先加载,随着类的加载而加载,类消失才会消失,只加载一次,优先于对象
2)可以被类名直接调用,只有一份,被全局所有对象共享
3)静态资源只能调用静态资源

19 final-终结者

1)类:不可被继承
2)属性:值不可被修改–常量
3)方法:不可以被重写.

20.重载与重写

重载:同一个类方法名相同参数列表不同(个数,对应位置的参数类型)
重写:两个类(父子类)方法签名一致,子修饰符> =父修饰符
重写是为了修改/拓展父类的功能可以加注解@Override

21.异常

1).异常的继承结构Throwable Error(不可解决) Exception(编码问题,可以解决)
2).异常的处理方法:
捕获:try-catch,catch可嵌套
向上抛出:throws
如果有方法抛出异常那调用这个方法的方法也必须解决(捕获/抛出)这个异常
异常不可以抛给main(因为没人解决了)

22抽象 abstract

1.可以修饰类–称为抽象类,不可以被实例化,有构造,为了子类创建对象使用
2.可以修饰方法–方法没有方法体
3.子类继承抽象父类后:1 )变成抽象子类 2)实现抽象父类所有抽象方法
4.不能与static final private共用

Object

1.Object–顶级父类,如果没有明确指定父类,默认父类就是Object
1)toString()–默认实现打印地址值,不要打印地址值,所以重写打印的就是属性值
2)hashCode()–返回对应的哈希码
3)equals()–默认实现==比较,比较的是地址值
需求:我们如果两个对象的类型相同,并且所有属性值也相同,就返回true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值