Java面向对象阶段性总结

本文介绍了面向对象编程的核心概念,包括类与对象、成员变量与局部变量、构造方法以及封装、继承和多态这三大特性。详细阐述了如何创建类和对象,以及如何利用构造方法初始化成员变量。此外,还探讨了继承、方法重写和重载的原理,以及this和super关键字的用法。最后,提到了抽象和接口在编程中的作用,以及多态的实现和意义。
摘要由CSDN通过智能技术生成

面向对象思想编程

O bject O riented P rogramming 简称 OOP
面向对象是当前主流的编程思想,将要解决的问题所需要的对象创建出来
让这些对象相互配合完成,最终实现效果
这种思想致力于将计算机世界描述和现实一样

类和对象

类class

具有相同的属性和行为的对象的集合,称为 " 一类 " 类也可以称为模板。

创建类:

[修饰符]class 类名{
    //属性(变量)
    //行为(方法)
}

例如我创建一个小车类,这个类有品牌颜色等属性,同时我要让其实现行驶,停止等一系列行为

public class Car{
    String brand;//品牌
    String color;//颜色


    //定义方法
    void go(){
        System.out.println("汽车在行驶");
    }
    void stop(){
        System.out.println("汽车停止");
    }
}

创建对象

类名 对象名=new 构造方法(参数);

创建好的对象,使用 . 点操作符访问类中的非私有属性和方法

类和对象的关系

对象是类的具体表现,类是对象的合集 ( 模板 )
如包饺子时的模具就是一个类,每次用模具包出来的饺子都是一个个对象。
先定义模板类,才能通过类创建出对象。

成员变量和局部变量

成员变量

定义在类中的变量,称为成员变量,拥有默认值。

类型默认值
整型0
浮点型0.0
布尔型false
字符型 空字型\u0000
引用类型null

局部变量

定义在方法中的变量,称为局部变量,没有默认值,赋值后才能使用

构造方法

是一个特殊的方法,没有返回值,方法名和类名一致。每个类在定义时,都有一个默认隐藏的无参数的 构造方法,在创建对象时自动调用,通常用于初始化成员变量。

面向对象的三大特性(封装、继承、多态)

封装

使用private关键字对属性进行修饰,可以防止除自身类之外的地方对该属性进行访问。 这样可以保护关键属性,隐藏类内部的实现细节,再对外提供一组公开的get/set方法用于对该属性的赋 值和读取。

继承

类A可以通过extends关键字继承类B。 语法:class 类A extends 类B 类A称为子类、派生类、衍生类、subClass 类B称为父类、基类、超类、superClass 继承后,子类可以访问父类中非私有的属性和方法。 不同的子类中相同的代码,都可以定义在父类中,减少子类中的代码冗余。

方法重写

当子类继承父类后,可以对父类中非私有的方法进行拓展。 这个行为称为方法重写。 重写用于子类拓展父类的某个方法。

重写要求

方法名、参数列表、返回值必须和父类一致

访问权限不能比父类更严格(访问修饰符的范围要么相同要么更大)

不能抛出比父类更大的异常

方法重载

在一个类中,如果多个方法的方法名相同,参数列表不同(参数类型不同或参数数量不同)时,这些方法称 为重载的方法。同名不同参。 重载用于在一个类中,某个方法在不同的条件下,执行不同的内容。

重载要求

方法名相同

参数列表(参数类型和数量)不同

this和super

这两个关键字都可以当作对象或构造方法

this当作对象

用法:this.属性或this.方法。 这时的this,表示当前类的对象。只能在方法中使用。 通常用于在方法中区分成员变量和参数。如封装时的set方法就用到了this区分。

this当作构造方法

用法:this([实际参数]); 此时的this()表示,当前类的一个构造对应的构造方法。

super当作对象

用法同this,但super表示父类的对象。 可以通过super访问父类对象中的非私有属性和方法。

super当作构造方法

用法同this(),表示调用父类中的某个构造方法。 只能用在构造方法中的第一行。

继承的特点

如果父类中重载了构造方法,默认无参构造方法就会失效,同时子类也会报错。 这时需要在子类的某个构造方法中,再调用父类的那个重载的构造方法即可。

多态

多态是面向对象语言的一种特性,通常在代码中用于:需要使用一个父类对象时,实际传递的是一个子 类对象,这时可以将子类对象当做父类对象使用。这种特性称为多态。 在不使用多态特性的情况下,假如要调用计算图形面积的方法,参数为圆时,输出圆的面积,参数为正 方形时,输出正方形的面积。。。如果有新的图形出现,就要再重载这个计算面积的方法。 如果使用多态,就可以不用重载那些方法,只需要定义一个参数为所有图形的父类,调用该父类对象的 计算方法。具体计算方法交给子类重写。这样就免去了重载的过程,只定义一个参数为父类对象的方 法,实际传递子类对象,调用方法时执行的是子类重写后的内容。

实现多态的前提

1.必须在继承关系中

2.子类的对象保存在父类的变量中(也称向上转型)

抽象abstract

是一个修饰符用于修饰方法或类。

修饰方法

用法:访问修饰符 abstract 返回值 方法名(参数列表);

如果某个父类中的方法在定义时无法决定要做什么,而是由其子类负责实现时,该方法可以定义为抽象 方法。 注意这里的方法不能有方法体(大括号)。 这时该抽象方法所在的类,也必须用abstract修饰,让其成为一个抽象类。

接口interface

在java中,数据类型分为原始类型和引用类型。

引用类型分为:数组、类和接口。所以接口是一种数据类型,类似于类。类使用class定义,接口使用 interface定义。 如果一个抽象类中的所有方法都是抽象方法,那么就可以将这个抽象类定义为接口。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值