【Java面向对象程序设计】某大学期末考试依据考纲做的自用复习资料(上)
发布日期:2022-03-08 21:50:44 浏览次数:5 分类:技术文章

本文共 3412 字,大约阅读时间需要 11 分钟。

文章内容为某大学Java面向对象程序设计的考纲和自翻书及部分网上搜索资料,全不全、对不对不算特别重要,毕竟是自用的嘛。

使用教材:《Java基础入门(第二版)》黑马程序员/编著

第一章:

  • OOP的特点:

面向对象编程的三大特性是封装性、继承性、多态性。

1、封装性:封装是指将一个计算机系统中的数据以及与这个数据相关的一切操作语言组装到一起,一并封装在一个有机的实体中,把它们封装在一个“模块”中,也就是一个类中,为软件结构的相关部件所具有的模块性提供良好的基础。

2、继承性:是面向对象技术中的另外一个重要特点,其主要指的是两种或者两种以上的类之间的联系与区别。继承,顾名思义,是后者延续前者的某些方面的特点,而在面向对象技术则是指一个对象针对于另一个对象的某些独有的特点、能力进行复制或者延续。

3、多态性:从宏观的角度来讲,多态性是指在面向对象技术中,当不同的多个对象同时接收到同一个完全相同的消息之后,所表现出来的动作是各不相同的,具有多种形态;从微观的角度来讲,多态性是指在一组对象的一个类中,面向对象技术可以使用相同的调用方式来对相同的函数名进行调用,即便这若干个具有相同函数名的函数所表示的函数是不同的。

扩展资料

面向对象程序设计的优点:

1、数据抽象的概念可以在保持外部接口不变的情况下改变内部实现,从而减少甚至避免对外界的干扰;

2、通过继承大幅减少冗余的代码,并可以方便地扩展现有代码,提高编码效率,也减低了出错概率,降低软件维护的难度;

3、以对象为中心的设计可以帮助开发人员从静态(属性)和动态(方法)两个方面把握问题,从而更好地实现系统;

4、通过对象的聚合、联合可以在保证封装与抽象的原则下实现对象在内在结构以及外在功能上的扩充,从而实现对象由低到高的升级。

5、结合面向对象分析、面向对象设计,允许将问题域中的对象直接映射到程序中,减少软件开发过程中中间环节的转换过程;

6、通过对对象的辨别、划分可以将软件系统分割为若干相对为独立的部分,在一定程度上更便于控制软件复杂度。

  • JDK:

是JAVA的核心,其中包括java编译器、java运行工具、java文档生成工具、java打包工具等。

  • JRE:

是java的运行环境,提供给普通用户使用的。只包含java运行工具、不包含java编译工具。

  • JAVA运行机制:

源文件->编译器->字节码文件->解析器->机器码文件->计算机

  1. 编写一个java源文件~.java
  2. 使用”javac ~.java”命令开启Java编译器并进行编译
  3. 编译结束后,会自动生成一个~.class的字节码文件
  4. 使用”java ~”命令启动java虚拟机运行程序,java虚拟机首先将编译好的字节码文件加载到内存,这个过程被称为类加载,它是由类加载器完成的,然后虚拟机通过java解析器对加载到内存中的java类进行解释执行
  5. 执行后会生成计算机可以识别的机器码文件
  6. 机器码文件在计算机运行并显示结果

第二章:

  • 标识符命名规则:

标识符可以由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但标识符不能以数字开头,也不能是java中的关键字。

  • 变量类型:
  1. 初始化(byte、float、char、字符串常量池)

数据类型                             默认初始化值

byte、short、int、long                          0

double、float                              0.0

char                          一个空字符,即’\u0000’  

boolean                                false

引用数据类型                     null,表示变量不引用任何对象       

  1. 自动类型转换(小-->大,byte、short、char自动转int,复合赋值,字符串拼接+)

byte->short->int

      char->int->long->float->double

  1. 强制类型转换(类型兼容:char ≠ String,  dog ≠ cat )

当两种类型彼此不兼容,或者目标类型取值范围小于源类型时,自动类型转换无法进行,这时就需要进行强制类型转换。

                     目标类型  变量名 = (目标类型)值;

  • 变量、常量

变量:书P29~P37(没啥重点)

常量:

  1. 整型常量:二进制(0|1)、八进制(0~~~)、十进制(~)、十六进制(0x~|0X~)
  2. 浮点数常量:float单精度浮点数(~F|~f)、double双精度浮点数(~D|~d)
  3. 字符常量:(‘~’)
  4. 字符串常量:(“~”)
  5. 布尔常量:true|false
  6. null常量:表示对象引用为空

  • 运算符:

注意:== 对于引用类型,比较地址

  1. 算术运算符(常识)(++、--)
  2. 赋值运算符(常识)(%=)
  3. 比较运算符(常识)
  4. 逻辑运算符:&与、|或、^异或、!非、&&短路与、||短路非(目前没见过^)
  5. 位运算符:&按位与、|按位或、~取反、^按位异或、<<左移、>>右移、>>>无符号右移(目前为止没用到过)
  6. 条件运算符:?:等价于选择结构语句if…else条件语句

***优先级:书P49自查***

  • if、循环语句、break、continue

不会还有人不会吧。。。不会吧。。。

*break、continue跳一层循环

  • 数组:引用类型、定义、初始化、默认初始值、length属性

引用类型:???没懂什么意思

定义:

  1. 数组类型[] 数组名 = new 数组类型[数组长度];
  2. 数组类型[] 数组名 = new 数组类型[]{数组元素0,数组元素1,…};
  3. 数组类型[] 数组名 = {数组元素0,数组元素1,…};

初始化:

数组的数组元素分配内存空间, 并为每个数组元素赋初始值。

静态初始化: 初始化时由程序员显式指定每个数组元素的初始值, 由系统决定数组长度。

动态初始化: 初始化时程序员只指定数组长度, 由系统为数组元素分配初始值。

默认初始值:见上

length属性:是每个数组的索引都有一个范围,即0~length-1.在访问数组元素时,索引不能超出这个范围,否则程序会报错。

第三章:

  • 面向对象的特征 :封装、继承、多态

见第一章的OOP。

  • 访问控制符级别

小  private -> default -> protected ->public  大

  1. private(当前类访问级别):如果类的成员被private访问修饰符修饰,则这个成员只能被该类的其他成员访问,其他类无法直接访问。类的良好封装就是通过private关键字来实现的。
  2. default(包访问级别):如果一个类或者类的成员不使用任何访问控制符修饰,则称它为默认访问控制级别,这个类或者类的成员只能被本包中的其他类访问。
  3. protected(子类访问级别):如果一个类的成员被protected访问控制符修饰,那么这个成员既能被同一包下的其他类访问,也能被不同包下的该类的子类访问。
  4. public(公共访问级别):这是一个最宽松的访问控制级别,如果一个类或者类的成员被public访问控制符修饰,那么这个类或者类的成员能被所有的类访问,不管访问类与被访问类是否在一个包中。

  • 方法重载   重载条件

重载条件:方法的重载与返回值类型无关,但需要满足方法名相同参数个数或参数类型不同

  • 构造方法

语法格式:

[修饰符] 方法名 ([参数列表]){

       //方法体

}

满足条件:

  1. 方法名与类名相同;
  2. 在方法名前面没有返回值类型的声明;
  3. 在方法中不能使用return语句返回一个值,但是可以单独写return语句来作为方法的结束。

  • this:同名区分、成员方法隐含参数、调用本类其他构造方法(首句、不能互相调用)
  1. 通过this关键字调用成员变量,解决与局部变量名称冲突的问题。
  2. 通过this关键字调用成员方法。
  3. 通过this关键字调用构造方法。

*注意*1、只能在构造方法中使用this调用其他的构造方法,不能在成员方法中使用;

*注意*2、在构造方法中,使用this调用构造方法的语句必须是该方法的第一条执行语句,且只能出现一次。

*注意*3、不能在一个类的两个构造方法中使用this互相调用。

六、static:

(1)属于类,没有this,不能修饰局部变量

(2)静态方法,只能调用静态成员方法和使用静态数据成员

(3)静态代码块:定义在主类中,会优先于main()方法执行。

静态代码块定义在非主类中,会优先于构造方法执行。

当类被加载时,静态代码块会执行,并且只会执行一次。

转载地址:https://blog.csdn.net/m0_55661745/article/details/121496193 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:记录 布局生成器网站
下一篇:『学习Python~遇到的问题』#1

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月23日 10时22分33秒