OOP 三大特征和文件编程面试题 | 学习笔记-阿里云开发者社区

开发者社区> 【开发者学堂】官方技术圈> 正文
登录阅读全文

OOP 三大特征和文件编程面试题 | 学习笔记

简介: 快速学习OOP 三大特征和文件编程面试题,课程揭秘Java面向对象编程的奥秘,深入解析Java经典数据类型,多线程编程详解,带你全面探索多线程编程的世界,攻克Java面向对象编程疑难点!

开发者学堂课程【5天玩转Java 面向对象编程训练营第三课时:OOP 三大特征和文件编程面试题】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/349/detail/4083


OOP 三大特征和文件编程面试题

 

内容简介

一、课程回顾

二、面向对象的三大特征

三、Java的 类 继承

四、高级面试题 多态:实现机制

五、抽象类 抽象的类型 无法具体化接口 结束合约

六、Java 文件编程 File 读写文件编辑器

 

一、课程回顾:

1、Java 是由SUN 公司于1995年5月推出的高级程序设计语言,最初的版本是以OAK来命名的,正式推出使用之后更名为Java,Java 之父是詹姆斯•高斯林,JavV名字的由来是印度尼西亚爪哇岛英文名称,因盛产咖啡而闻名。

Java语言中的许多库类名称,多与咖啡有关:如JavaBeans咖啡豆)、NetBeans(网络豆)以及ObjectBeans(对象豆)等等。

SUN 和JAVA 的标识也正是一杯正冒着热气的咖啡。
2、JDK 是Java 开发工具包 (Java Development Kit ) 的缩写。从字面意思翻译过来就是java 开发的工具。它是一种用于构建在 Java 平台上发布的应用程序;JVM 是Java 虚拟机的英文简称。他是java 运行环境的一部分。它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

3、8大基本类型:整型的byteshoruintlong;字符型的char;浮点型的floatdouble、;布尔型booleanJava很多的数据类型都是从小学数学引进来的。

4、变量指的是小学数学的xyz等等一系列的代数符号。

5、C语言中的函数Function 本意是:函数就是 C 语言的模块,一块一块的,有较强的独立性,可以相互调用,换句话说,C 语言中,一个函数里面可以调用 n 个函数,即大函数调用小函数,小函数又调用“小小”函数。这就是结构化程序设计,所以面向过程的语言又叫结构化语言。

6、对象Object 本质上是代表了某个东西,作为一个编程语言的话,为了更好的使用代码去体现要处理的数据而引用了Object。

7、Class 是作为归类而产生的,把不同类型的代码进行分类。


二、面向对象的三大特征

1、继承:子类继承父类的代码

继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。

2封装:Class+修饰符封装代码

即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。

在电子方面,封装是指把硅片上的电路管脚,用导线接引到外部接头处,以便与其它器件连接。

3多态:同一种行为,多种代码实现

多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。

不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。


三、Java 的 类 继承

1、Java定义基类Animal

举例:

1.png

Java定义狗Dog继承自Animal基类

2.png

其中extend 是继承关键字其语法格式是:修饰符 class 子类 extends 父类,在父类中公开的属性以及方法都能被子类继承。

在以上的这个例子里面extend 的继承类就是Animal。

2测试Java 子类行为多态

举例:

3.png

行为多态就是参数的个数和类型的差异,在编程中指的是同一种行为的多种实现。

3Java 的Class 类继承

继承是为了更好的代码重用,Java 的子类可以继承父类,并且Java 所有的方法都是默认的Virtual 的

举例:淘宝订单

4.png

继承父类订单Order

6.png

举例:测试面向对象

5.png

其中的main 函数又称主函数,是程序执行的起点,main 是相对来说的,如同音学理论之主调于泛音,泛音即程序中的除main 之外的其他函数,迎合人们的思考方式而生成的而非必定的模式。

有主有次,执行起来条清缕析,既可将程序模块化又实现了一个闭合的整体。

举例:行为扩展,方法重载,同一个类型的同名方法不同实现

7.png

在这里面子类和父类的同名方法,参数相同的重写

以上是用互联网订单的例子来进行讲解的。

面向对象编程提供了很多不同的机制去支持代码的重用和灵活扩展的机制,本质上所有的编程语言的出发点都是一样的,包括编程对象和编程原子都是一样的,只是在语法上会有些许的区别。


四、高级面试题 多态:实现机制

多态本质指的是同一种行为的多种实现,多态是编程语言的一个抽象表现。

| 面试题:面向对象行为多态

1、多态是行为(功能、函数、方法)的多态;

2、指为同名的方法提供不同的实现代码;

3、我们不关心方法的具体实现,而是仅仅依靠名称来进行调用操作;

4、多态是面向对象编程的最重要特征(继承、封装、多态);

5、Abstract 抽象方法和Virtual虚方法是多态的基础;

6、Java 和C#提供三种多态能力分别是:

①接口多态:依赖实现接口来提供多态能力;

②继承多态:依赖继承来提供多态能力

③抽象多态:依赖抽象类来提供多态能力。

接口:部分约束 合约 约定

8.png

接口是功能的集合,同样可看做是一种特殊的数据类型,是比抽象类更为抽象的类。

在JAVA编程语言中是一个抽象类型,是抽象方法的集合。接口通常以interface 来声明。

一个类通过继承接口的方式,从而来继承接口的抽象方法。

| 面试题:Java 多态实现方式

1、Java 多态概念:

多态性是面向对象编程中的一个重要特性,主要是用来实现动态联编的。换句话说,就是程序的最终状态只有在执行过程中才被决定,而非在编译期间就决定了。这对于大型系统来说能提高系统的灵活性和扩展性。

多态允许相同类域的不同对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。

多态可以让我们不用关心某个对象到底是什么具体类型,就可以使用该对象的某些方法,从而实现更加灵活的编程,提高系统的可扩展性。

如果对象的编译时类型和运行时类型不一致,就会造成多态。

2、多态是行为的多态;

3、重载Overlodading:

同一个类中,兄弟方法,方法名相同,参数个球、类型、顺序不同;

4、重写Override:

子类和父类,父子关系,子类重新实现父类中同名方法;

5@Override 标记到重写的方法上。


五、抽象类 抽象的类型 无法具体化接口 结束合约

抽象类的本质是抽象方法只能定义在抽象类中,抽象的方法和抽象的类必须由关键字abstract 修饰,抽象类值只定义方法声明,不定义功能主题(即方法的实现),抽象类不可以被创建对象,抽象类只有子类继承了父类中的方法,并且对其中的所有抽象方法进行了重写。

该子类才不是抽象类,只要不是重写当中的所有抽象方法,那么这个子类还是抽象类。

1、Java 动物类Aminal

举例:

9.png

其中抽象类代表同一类别,接口代表一种部分约束。

 10.png

| 面试题:抽象类和接口的区别

1、实例方法:创建对象才能调用的方法;

2、静态方法:Sratic 修饰的方法,属于类Class,不需要实化;

3、虚方法:virtual,介于抽象和实体方法之间,可以重写;

4、除了static、final、private修饰的所有方法都是。

5、Abstract 抽象类不可以被实例化,interface接口也不可以;

6、抽象类只允许单继承,接口可以多继承;

7、Abstracr 抽象类有具体方法实现,接口只有方法声明

8、抽象类使用关键字extends,借口继承使用implements。


六、Java 文件编程 File 读写文件编辑器

文件是数据的一种存储形式。

1、Java、io File数据读写操作

1、Java、io包几乎包含了所有操作输入、输入需要的类;

2、所有这些流类代表了输入源和输出目标;

3、Java、io包File文件类库的流支持很多种格式,比如:基本类型、对象、本地化字符集等;

4、一个流可以理解为一个数据的序列;

5、输入流表示从一个源读取数据,输出流表示向一个目标写数据;

6、Java 为I/O提供了强大且灵活的支持、类库;

7、使其更广泛地应用到文件传输和网络编程中。

举例:Java FileWriter 写入文件

 11.png

12.png

 

 

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

阿里云开发者学堂,是开发者学习成长的一站式学习平台。平台源源不断的生产优质体系化课程、优质内容如电子书、直播、体验场景、训练营等,为开发者构建完善的学习成长体系,为开发者赋能。目前,开发者学堂包含数据库、大数据、云原生、AI、IoT等各大热门领域精品课,全部免费对开发者开放。

官方博客
最新文章
相关文章
官网链接