面向对象(一)

本文介绍了面向对象编程的基本概念,包括封装、继承、多态等核心特性。解释了类与对象的关系,构造函数的作用及特点,并详细阐述了this关键字、static关键字的应用场景。此外,还涉及了抽象类和接口的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

面向对象

1,三个特征:封装,继承,多态

 

2,类和对象之间的关系

类:对现实生活中事物的描述

对象:是这类事物在现实中实实在在的存在

 

3.封装:是指隐藏对象的属性和细节,仅对外提供共有访问方式

好处:将变化隔离、便于使用、提高复用性、提高安全性

原则:将不需要对外提供的内容都隐藏起来

 

4.构造函数:

特点:(1)构造函数与类名相同 (2)不用定义返回值类型 (3)不可以写return语句

作用:给对象进行初始化

注意:可以拥有多个构造函数,这些构造函数必须以重载的形式存在;当没有构造函数时,系统会自动加入一个空参数的构造函数

 

小插曲:

构造代码块:

作用:给对象进行初始化,对象一建立就运行,而且优先于构造函数执行

与构造函数的区别:构造代码块是给所有对象进行统一的初始化,而构造函数是给对应的对象进行初始化

 

5.this关键字

特点:就代表本类的对象,代表所在函数所属对象的引用

(1)可以避免:局部变量与成员变量重名而导致变量使用不当。局部中有该变量就使用局部,局部没有就去类成员中去找

(2)本类功能内部使用到本类对象,都用this来代表本类自己

(3)构造函数中调用本类构造函数时,不能直接使用构造函数调用构造函数,但是可以使用this来指代被调用的构造函数,此时this还是代表对象

 

6.static关键字

特点:是一个修饰符,用于修饰成员,被修饰后就被所用成员共享,还可以直接被类名调用(类名.静态成员)

被修饰之后就会存在与方法区(共享区、数据区)

(1)随着类的加载而加载,随着类的消失而消失

(2)优先于对象的存在

(3)被所有对象所共享

(4)可以直接被类名调用

 

静态代码块:随着类的加载(用到类中内容)而执行,只执行一次

 

继承:

特点:(1)提高了代码的复用性    (2)让类与类之间产生关系,有了这个关系才有了多态的特性

java中只支持单继承,因为多继承容易带来安全隐患。当多个父类中定义了相同的功能,但功能内容不同时,子类对象不确定要运行哪一个

但是java保留了这种机制,并用另一种体现形式来完成表示--多实现

原则:查阅父类功能,创建子类对象使用功能。

 

final关键字:

特点:

(1)可以修饰类,函数,变量  

(2)被final修饰的类不可以被继承  

(3)被final修饰的方法不能被复写 

(4)被final修饰的变量是一个常量,只能被赋值一次,既可以修饰成员变量,又可以修饰局部变量

(5)弥补了继承打破了封装性的特点

 

抽象类(abstract):

当多个类中出现相同功能,但是功能主体不同,这时可以进行向上抽取。这时,只抽取功能定义,而不抽取功能主体。

特性:

(1)抽象方法必须放到抽象类中

(2)抽象方法和抽象类都必须被abstract关键字修饰

(3)抽象类不可以使用new创建对象,因为调用抽象方法没有意义

(4)抽象类中的抽象方法要被使用,必须由子类复写其使用的抽象方法后,建立子类对象调用,如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类

 

接口(interface):

可以理解为一个特殊的抽象类

(1)接口中的成员都有固定修饰符,常量(public、static、final),方法(public、abstract)

(2)接口是不可以创建对象的,因为有抽象方法,需要被子类实现,子类对接口中的抽象方法全部覆盖后,子类才可以被实例化,否则子类是一个抽象类

(3)接口可以被类多实现,也是对多继承不支持的转换形式,java支持多实现

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值