首页 > 编程语言 >面向对象编程

面向对象编程

时间:2024-02-21 13:56:04浏览次数:30  
标签:子类 多态 面向对象编程 抽象类 父类 方法 本类

1.对象

面向对象与面向过程

1)两者都是一种编程思想

2)面向对象强调的是事情的结果,我们通过对象完成对应的功能

3)面向过程强调的是事情的过程,我们做任何事情,都要亲力亲为,经过每一个过程

4)Java是一门面向对象的语言

类与对象

1)定义类通过关键字class来定义,类是一类事物的抽象,它是抽象的,它是模板

2)创建对象通过new关键字触发构造函数生成,对象根据类创建出来的具体的内容

3)一个类可以创建多个对象,对象是根据类的设计来创建的,所以对象具有类的所有属性与功能

4)对象之间是相互独立的,互不影响,我们把创建对象称作为”实例化”

面向对象的三大特性:封装

1)前提:为了保证数据的安全,也为了程序的使用者能够按照我们预先设计好的方式来使用资源

2)封装属性:用private修饰我们的属性,然后为属性提供对应的getXxx和setXxx方法

3)封装方法:用private 修饰方法,被修饰的方法只能在本类中使用,所以我们在本类的公共方法里调用这个私有方法,外界如果想要使用这个私有方法的功能,只需要调用这个公共方法就可以了

面向对象的三大特性:继承

1)前提:继承可以实现程序的复用性,减少代码的冗余

2)我们通过extends关键字建立子类与父类的关系;格式:子类 extends 父类

3)继承相当于子类把父类的功能复制了一份,包括私有资源

a.虽然私有资源继承了,但是私有资源不可用,原因是被private 限制了访问,私有资源只能在本类使用

b.构造方法不能继承,原因是:构造方法要求名字是本类的类名,我们不能在子类的出现父类名字的构造方法

4)继承是可以传递的

5)Java的类是单继承的:一个子类只能有一个父类,但是一个父类可以有多个子类

6)子类在继承了父类以后,如果对父类的功能不满意,可以进行方法的重写

7)继承是一种is a的关系,强耦合,关联性特别强,而且类的继承机会只有一次

8)子类可以直接使用父类的所有非私有资源

面向对象的三大特性:多态

1)前提:为了忽略子类型之间的差异,统一看作父类类型,写出更加通用的方法

2)概念:在同一时刻,同一个对象,代表的类型不同,拥有多种形态

3)多态的要求:继承+重写

4)多态的口诀1:父类引用指向子类对象:父类型的引用类型变量保存的是子类对象的地址值

5)多态的口诀2:编译看左边,运行看右边:父类中定义的功能,子类才能使用;多态中,方法的定义看的是父类,方法的实现看的是子类重写后的功能

6)多态中资源的使用:

a.成员变量:使用的是父类的

b.成员方法:定义看的是父类,实现看的子类

c.静态资源:属于类资源,不存在重写的概念,在哪个类中定义,就属于哪个类

7)向上造型与向下造型

a.两种都属于多态,是多态的两种不同的表现形式

b.向上造型(较常用) 可以把吧托尼盖的子类型都看做是父类型

c.向下造型

a)必须得先向上造型,才能向下造型

i.子类的引用指向子类的对象,但是这个子类对象之前被看作是父类类型,所以需要强制类型转换

构造方法

1)格式:修饰符 类名当做方法名(){}  与类同名且没有返回值类型

2)构造方法作用:用于创建对象,每次new对象时,都会触发对应的构造函数

3)一个类中默认存在无参构造,如果这个构造不被覆盖的话,可以不传参数,直接创建对象

4)如果这个类中提供了其他的构造函数,默认的无参构造会被覆盖,需要手动添加无参构造

5)构造方法也存在重载的现象
super与this   
1. this代表的是本类,super代表的是父类
2. 当本类的成员变量与局部变量同名时,可以通过this.变量名指定本类的成员变量,同理,当父类的成员变量与局部变量同名时,可以同过super.变量名指定本类的成员变量

总结

  • 封装的作用
    1. 提高程序的安全性,保护数据
    2. 隐藏代码的实现细节
    3. 统一接口
    4. 系统可维护性增加

2.抽象类

- abstact修饰的类就是抽象类,修饰的方法就是抽象方法。
- 抽象类中可以没有抽象方法,但有抽象方法的类一定要声明为抽象类。
- 抽象类不能使用new来创建对象,它是用来让子类继承的。
- 抽象方法只有方法的声明,没有实现,让其子类实现。
- 子类继承抽象类,必须实现抽象类的所有方法,否则该子类也要声明为抽象类。

3.接口

- 普通类:只有具体实现
- 抽象类:具体实现和抽象方法都有
- 接口:只有规范,没有方法实现
- 接口的本质就是约束
- 注意点
  - 接口没有构造方法,不能被实例化
  - 实现类必须要重写接口中的方法
  - 实现类可以实现多个接口

4.内部类

内部类是在一个类的内部再定义一个类

1. 成员内部类:可以操作外部类的私有属性及方法
2. 静态内部类:static修饰,不能访问外部类私有属性
3. 局部内部类:外部类的方法里定义的类
4. 匿名内部类:没有名字初始化类

标签:子类,多态,面向对象编程,抽象类,父类,方法,本类
From: https://www.cnblogs.com/cqwes123/p/18025044

相关文章

  • 深入解析 Java 面向对象编程与类属性应用
    Java面向对象编程面向对象编程(OOP)是一种编程范式,它将程序组织成对象。对象包含数据和操作数据的方法。OOP的优势:更快、更易于执行提供清晰的结构代码更易于维护、修改和调试提高代码重用性减少开发时间类和对象类是对象的模板,它定义了对象的属性和方法。对象......
  • 第五章:面向对象编程
    1.面向对象概述软件开发方法:面向过程和面向对象面向过程:关注点在实现功能的步骤上PO:ProcedureOriented。代表语言:C语言面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。例如开汽车:启动、踩离合、挂挡、松......
  • 面向对象编程
    面向对象编程Java的核心思想就是OOP1、初识面向对象面向过程&面向对象面向过程思想步骤清晰简单,第一步做什么,第二步做什么……面向过程适合处理一些较为简单的问题面向对象思想物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单......
  • 第五章:面向对象编程(基础)
    面向对象概述软件开发方法:面向过程和面向对象面向过程:关注点在实现功能的步骤上PO:ProcedureOriented。代表语言:C语言面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。例如开汽车:启动、踩离合、挂挡、松离合......
  • 面向对象之面向对象编程
    面向对象之面向对象编程一、面向过程与面向对象[1]面向过程面向过程着重于过程,就是将程序“流程化”所谓“流程化”就是将功能、问题等一步一步地逐步实现,像流水线一样,整个过程从开始到结尾线状排序(1)面向程序的优点将复杂的问题逐步拆分,进而简单化(2)面向对象的缺点一......
  • C# 面向对象编程进阶:构造函数详解与访问修饰符应用
    C#构造函数构造函数是一种特殊的方法,用于初始化对象。构造函数的优势在于,在创建类的对象时调用它。它可以用于为字段设置初始值:示例获取您自己的C#服务器创建一个构造函数://创建一个Car类classCar{publicstringmodel;//创建一个字段//为Car类创建一个......
  • C# 面向对象编程进阶:构造函数详解与访问修饰符应用
    C#构造函数构造函数是一种特殊的方法,用于初始化对象。构造函数的优势在于,在创建类的对象时调用它。它可以用于为字段设置初始值:示例获取您自己的C#服务器创建一个构造函数://创建一个Car类classCar{publicstringmodel;//创建一个字段//为Car类创建一......
  • 面向对象编程中级
    IDE编程常用快捷键删除当前行,默认是ctrl+Y自己配置ctrl+d复制当前行,自己配置ctrl+alt+向下光标补全代码alt+/添加注释和取消注释ctrl+/【第一次是添加注释,第二次是取消注释】导入该行需要的类先配置autoimport,然后使用alt+enter即可快速格式化代码ctrl+alt+L快速......
  • 面向对象编程基础
    类和对象的区别和联系类是抽象的,概念的,代表一类事物,比如人类,猫类..,即它是数据类型.对象是具体的,实际的,代表一个具体事物,即是实例.类是对象的模板,对象是类的一个个体,对应一个实例属性,成员变量,字段成员变量=属性=field(字段)(即成员变量是用来表示属性的,统一叫属......
  • 韩顺平java基础-10-面向对象编程
    韩顺平java基础-10-面向对象编程类变量和类方法类变量static静态变量被同一个类所有对象共享类变量在类加载的时候生成定义语法访问修饰符static数据类型变量名如何访问类变量类名.类变量名//类变量随着类加载而创建,所以即使没有创建对象实例也可以访问。使用细......