面向对象入门基础

1. 什么是类?什么是对象?

现实生活中是由很多很多对象组成的,基于对象抽出了类
对象:软件中真实存在的单个个体 / 东西
类:类型 / 类别,代表一类个体
类是对象的模板/模子,对象是类的具体的实例
类中可以包含:
对象的属性 / 特征 ----------------------------- 成员变量
对象的行为 / 动作 / 功能 ---------------------- 方法
一个类可以创建多个对象

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

3. 方法的签名:方法名+参数列表

4. 方法的重载(overload/overloading)

-------------------------------方便用户的调用

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

5. 构造方法:构造函数、构造器、构建器

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

6. this:指代当前对象,哪个对象调用方法它指的就是哪个对象

只能用在方法中,方法中访问成员变量之前默认有个 this.
this 的用法:
this. 成员变量名 --------------------------- 访问成员变量
当成员变量与局部变量同名时,若想访问成员变量,则 this 不能省略
this. 方法名 ()-------------------------------- 调用方法 ( 一般不用 )
this()------------------------------------------ 调用构造方法 ( 一般不用 )

7. null:表示空,没有指向任何对象。

若引用的值为 null ,则该引用不能进行任何点操作了,若操作则发生 NullPointerException
指针异常。

8. 引用类型数组:

给元素赋值时,需要 new 个对象
若想访问对象的数据,需要通过数组元素去打点来访问

9. 继承:

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

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

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

11. 向上造型:

-------------------------------------------- 代码复用
超类型的引用指向派生类的对象
能点出来什么,看引用的类型 ---------------- 这是规定,记住就 OK
何时向上造型:
多种角色能干的事都一样的时候,可以将多种角色统一造型到超类数组中,实现代
码复用
eg: 学生 / 老师 / 医生都是输出名字 + 问好 ------ 干的事都一样,
就可以将学生 / 老师 / 医生统一造型到 Person 数组中,这样一个 for 即可 -------
码复用

12. 方法的重写(override/overriding)

重新写、覆盖
发生在父子类中,方法名相同,参数列表相同
重写方法被调用时,看对象的类型 ----------------------- 这是规定,记住就 OK
重写需遵循 " 两同两小一大 " 原则: ------------------------- 了解,一般都是一模一样的
两同:
方法名相同
参数列表相同
两小:
派生类方法的返回值类型小于或等于超类方法的
void 和基本类型时,必须相等
引用类型时,小于或等于
派生类方法抛出的异常小于或等于超类方法的 ------------------------
一大:
派生类方法的访问权限大于或等于超类方法的 ------------------------

13. 重写与重载的区别:

---------- 常见面试题
重写:发生在父子类中,方法名相同,参数列表相同
重载:发生在同一类中,方法名相同,参数列表不同

14、package和import

package:

作用;避免类的命名冲突(不同的包里,类名可以同名。全名是 包名.类名)

同包中的类不能同名,不同包中的类可以同名

包名常常有层次结构

建议包名的所有字母用小写。

import:

导入类

同包中的类可以直接访问

不同包中的类不能直接访问;访问需要使用import导入类,再使用类

(或者使用类的全称,繁琐,不建议)

注意:

1、顺序:package---import----class

2、import 包名.*-------表示导入了包中的所有类,但不建议使用*(*影响性能)

建议使用哪个类就导入哪个类

15、访问控制修饰符

public 公开的

private

protected

默认

16、final最终的、不能改变的

修饰变量---变量不能被改变

修饰类-----类不能被继承

修饰方法---方法不能被重写

17、static 静态的

静态变量:static、方法区、类,需要通过类名点来访问

                        所有数据所共享的数据(图片、音频、视频)

静态方法;static、方法区、类,类名点访问,

                没有this,不能直接访问实例变量

                方法的操作与对象无关--不需要访问对象的属性和行为

静态块:static、类、类被加载时自动执行,一次

                初始化静态资源(图片、音频、视频)

18、static final 常量(应用率高)

19、抽象方法

20、抽象类

21、成员内部类

类中套类,外面的类称为外部类,内部的类称为内部类。

22、匿名内部类

23、接口

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

曲悦丹田

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

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

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

打赏作者

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

抵扣说明:

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

余额充值