面向对象1

什么是类?什么是对象?

现实生活中是由很多很多对象组成的,基于对象抽出了类

对象:软件中真实存在的单个个体/东西

类:类别/类型,代表一类个体

类是对象的模子,对象是类的具体的实例

类中可以包含:

对象的属性/特征-----------------------成员变量
对象的行为/动作-----------------------方法
一个类可以创建多个对象
 

如何创建类?如何创建对象?如何访问成员?

方法的重载(overload/overloading):

  • 发生在同一类中,方法名相同,参数列表不同
  • 编译器在编译时会根据方法的签名自动绑定方法

构造方法:

构造函数、构造器、构建器---------复用给成员变量赋初值代码
作用:给成员变量赋初始值
与类同名,没有返回值类型(连void都没有)
在创建(new)对象时被自动调用
若自己不写构造方法,则编译器默认提供一个无参构造方法,若自己写了构造方法,则不再默认提供
构造方法可以重载
 

 this:

指代当前对象,哪个对象调用方法它指的就是哪个对象
​ 只能用在方法中,方法中访问成员变量之前默认有个this.
this的用法:

  • this.成员变量名-------------访问成员变量

成员变量与局部变量同名时,若想访问成员变量则this不能省略 

  • this.方法名()-----------------调用方法

  • this()---------------------------调用构造方法

 null:

表示空,没有指向任何对象
若引用的值为null,则该引用不能进行任何点操作了,
若操作则发生NullPointerException空指针异常

补充

成员变量和局部变量是可以同名的:
----使用的时候默认采取就近原则
----若想访问成员变量,则this不能省略

内存管理:由JVM来管理的

堆:new出来的对象(包括成员变量)
栈:局部变量(包括方法的参数)
方法区:----------面向对象第五天讲
成员变量:写在类中,方法外--------有默认值
局部变量:方法中------------------------没有默认值

数组也是一个对象,所以数组对象也存储在堆中,
将数组的元素当作成员变量一并存储在堆中

引用类型数组:

  • 与基本类型数组的区别:
    • 给数组元素赋值必须new一下
    • 若想访问对象数据必须通过数组元素打点

 

继承:


- 作用:代码复用
- 通过extends来实现继承
- 超类/父类:共有的属性和行为
派生类/子类:特有的属性和行为
- 派生类既能访问自己的,也能访问超类,但是超类不能访问派生类的
- 一个超类可以有多个派生类,一个派生类只能有一个超类---------单一继承
- 具有传递性
- java规定:构造派生类之前必须先构造超类
- 在派生类的构造方法中若没有调用超类的构造方法,则默认super()调用超类的无参构造方法
- 在派生类的构造方法中若自己调用了超类的构造方法,则不再默认提供
> super()调用超类构造方法,必须位于派生类构造方法的第1行

super:指代当前对象的超类对象


super的用法:
super.成员变量名---------------------访问超类的成员变量
super.方法名()-------------------------调用超类的方法--------------明天下午讲
super()-----------------------------------调用超类的构造方法
 

向上造型:

  • 超类型的引用指向派生类的对象
  • 能点出来什么,看引用的类型-------------这是规定,记住就行了

 

方法的重写:重新写

  • 发生在父子类中,方法名相同,参数列表相同
  • 重写方法被调用时,看对象的类型-------这是规定,记住就行了

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值