JavaSE第七天

一、面向对象编程OOP的核心概念

1、类:就是模板,用来定义一类对象的方法和属性,比如学生、动物,万物都是有模板,都是可以定义为类;类名首字母大写

2、对象:类的实例化,比如学生这个类实例化,就是 XX同学

3、方法:方法是语句的集合,在一起完成一个功能;方法包含于类或对象中,即普通方法或者类方法

4、继承:子类继承父类的特征和行为,使得子类对象具有父类的方法和属性;父类也叫基类,具有公共的方法和属性

5、多态:同一个行为具有多个不同表现形式的能力;可以减少耦合、灵活可拓展;一般是继承类或者重写方法实现,比如一个行走的方法,对于鱼是游泳,小狗是在奔跑。实现接口也可以是多态

6、抽象:关键词abstract声明的类叫作抽象类,abstract声明的方法叫抽象方法;一个类里包含了一个或多个抽象方法,类就必须指定成抽象类;抽象方法属于一种特殊方法,只含有一个声明,没有方法体

二、面向对象构造函数的使用和方法的封装

构造函数:

  • 一种特殊的方法,创建对象时用来初始化对象,每次使用new 创建对象的时候,就会使用构造函数

  • 与类具有相同的名称,但是没有返回值,Java会自动为每个类提供一个默认构造函数

  • 如果自己定义了构造函数,就不再使用默认构造函数,如果没有显示的写出默认构造函数,则默认构造函数会消失

  • 注意点:如果构造函数之间互相调用,务必写在方法第一行

构造函数种类:

默认构造函数(也叫无参构造函数):

public 类名(){
}

有参构造函数:

public 类名(参数类型1  参数名1,参数类型2 参数名2...){
 
 
//自定义方法体
}

构造函数的修饰符:

  • public 用的最多,用来创建对象

  • private 私有化构造函数,不给外部创建对象,比如工具类,或者单例设计模式

  • default 默认的话,只能在当前包里面使用new 创建对象,几乎不用

封装:把过程和数据包围起来,对数据的访问只能通过已定义的接口,即方法。使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。包括:类封装、方法封装。

overload(重载,过载)

  • 在一个类里面,方法名字相同,而参数不同,和返回类型无关

  • 方法名必须相同。

  • 参数列表必须不同(参数类型、参数个数、参数顺序)。

  • 方法的返回类型可以相同也可以不同。

  • 重载与方法的访问修饰符和是否为static无关。

override(重写,覆盖)

  • 子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变

  • 包括:返回值类型,方法名,参数类型以及个数

  • 子类能够根据需要去实现父类的方法

三、关键字this

this关键字:this是一个特殊的引用变量,它引用当前对象本身;在类的内部,你可以使用this来引用对象的当前实例的变量和方法。

this关键字的主要用途有:区分成员变量和局部变量

四、对象继承的概念和使用

继承:子类继承父类的特征和行为,使得子类对象具有父类的方法和属性,父类也叫基类,具有公共的方法和属性

特点:

  • 子类拥有父类的非private的属性和方法

  • 子类可以用自己的方式实现父类的方法 override(重写,覆盖)

  • 实现了代码的复用,重写从父类那里继承来的方法的,当调用方法时候会优先调用子类的方法(默认就近原则)

构造方法和继承:

  • 子类不能继承父类的构造方法,但子类在创建对象时会自动调用父类的构造方法(如果父类有默认构造方法)。

  • 如果父类没有无参数的构造方法,而子类构造方法中又没有显式调用父类的构造方法,则编译会出错。

  • 子类可以通过super()关键字显式调用父类的构造方法,且super()调用必须位于子类构造方法的第一行。

注意:

  • 不支持多继承,支持多重继承,多重继承提高了耦合性,组合优于继承

  • 所有的类都是继承于 java.lang.Object

  • final关键字

    • 修饰的类,则这个类不可以被继承

    • 修饰方法,则这个方法不允许被覆盖(重写)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值