IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> Java——面向对象(一) -> 正文阅读

[开发测试]Java——面向对象(一)

目录

一、高级语言区分类

二、面向对象分析方法

三、面向对象的两个要素

四、类和对象的实现过程

五、变量赋值

六、高内聚低耦合

七、封装性的体现

八、构造器

九、权限修饰符

十、继承性

十一、多态性

十二、在eclipse中进行Junit单元测试的步骤

十三、Object类和包装类

十四、杂项

十五、面试题

一、高级语言区分类

  • 面向过程:强调功能行为,以函数为最小单位,考虑怎么做。
  • 面向对象:强调具备某功能的对象,以类/对象为最小单位,考虑谁做

二、面向对象分析方法

  • 根据问题,确定问题中要针对的是现实中的实体。(
  • 找出所需要的实体属性和功能,汇总起来形成概念中的类。(汇总需要的特性
  • 抽象的实体通过计算机语言描述,形成计算机世界中类的定义。即把类通过某些工具(编程语言)做成计算机能够识别处理的信息数据(数据结构)。(转成编程语言
  • 类的实例化形成计算机世界中的对象,通过对象解决计算机世界中的任一问题。(实例化解决问题)
  • 问题举例:收银员统计商品的金额。收银员和商品均可作为一个类。

三、面向对象的两个要素

  • :对一类事物的描述,是抽象的、概念上的定义。
    1. 类的成员:属性(成员变量)、行为(成员方法、函数)。
  • 对象:是实际存在的该类事物的每个个体,也被称为实例。

四、类和对象的实现过程

  1. 创建类,设计类的成员
  2. 创建类的对象
  3. 通过 “对象.属性” 或 “对象.方法” 调用对象的结构。

五、变量赋值

  • 变量为基本数据类型,赋值为变量保存数据值
  • 变量为引用数据类型,赋值为变量保存数据的地址值(含变量的数据类型)

六、高内聚低耦合

  • 高内聚:类的内部操作数据细节自动完成,不受外界干扰。
  • 低耦合:仅暴露少量的方法开放外部使用。

七、封装性的体现

  1. 将类的属性 xxx 私有化(private),同时,提供公共的(public)方法来获取(getXxx)和设置(setXxx)此属性的值。
  2. 不对外暴露私有的方法。
  3. 单例模式。

八、构造器

  • 特征
  1. 名称与类相同。
  2. 不声明返回值类型(勿与void声明混淆)。
  3. 不能被static、final、synchronized、abstract、native修饰,不能有return语句返回值。
  • 作用
  1. 创建对象。
  2. 初始化对象的信息。
  • 说明
  1. 若没有显式定义类的构造器,则系统默认提供一个无参构造器(一个类中至少有一个构造器)。
  2. 若已显式定义类的构造器,则系统不在提供默认无参构造器,需要自己书写。
  3. 定义构造器的格式:权限修饰符 类名(形参列表){} 。如 public show(int n){}。
  4. 一个类中定义的多个构造器,彼此间构成重载。

九、权限修饰符

修饰符

类内部

同一个包

不同包的子类

同一个工程

private

Yes

default

Yes

Yes

protected

Yes

Yes

Yes

public

Yes

Yes

Yes

Yes

十、继承性

  • 格式

???????class A extends B{},其中A为子类(派生类、subclass),B为父类(超类、基类、superclass)。

  • 规定与要求
  1. 一个类可被多个子类继承。
  2. 单继承性:一个子类只能有一个父类。
  3. 子父类是相对概念。即子类直接继承的父类被称为直接父类,间接继承的被称为间接父类
  4. 子类继承父类后,即可获取直接父类以及所有间接父类中声明的属性和方法。
  5. 若没有显式声明类的父类,则该类继承java.lang.Object类。
  6. 所有java类(除java.lang.Object类外)都直接或间接继承java.lang.Object类。
  • 体现与其他
  1. 若子类A继承父类B之后,子类A可获取父类B中的结构(属性、方法)。
  2. 特别地,父类中声明为private的属性和方法,子类继承父类后,仍可获取父类中私有的结构,但因封装性的影响,子类无法直接调用父类的该结构。
  3. 子类继承父类以后,仍可声明自身特有的属性和方法,实现功能的拓展。
  • 好处
  1. 减少冗余代码,提高代码复用性。
  2. 便于功能的扩展。
  3. 为多态的使用提供前提。

十一、多态性

  • 理解:父类的引用指向子类的对象(或子类的对象赋给父类的引用)<向上转型>。
  • 使用(虚拟方法调用):当调用子父类同名同参数的方法时,实际执行的是子类重写父类的方法。即在编译期,只能调用父类中声明的方法,但在运行期,实际执行的是子类重写父类的方法。(总结:编译看[等号]左边,运行靠右边)。
  • 注:多态性只适用于方法
  • 编外:若子类重写了父类的方法,则子类中定义的方法彻底覆盖父类中的同名方法;但实例变量无法彻底覆盖父类中定义的实例变量,父类和子类仍可各自调用该同名实例变量。

十二、在eclipse中进行Junit单元测试的步骤

  1. 选中当前工程->单元选择:Build Path ->Configure Build Path ->Libraries ->Classpath ->Add Library ->JUnit ->Next -> Finish
  2. 创建Java类,进行单元测试(注:要求该Java类此时:①此类是public的。②此类提供public权限的无参构造器)。
  3. 此类中声明单元测试方法(注:此时单元测试方法的权限为public,无返回值,无形参)。
  4. 此单元测试方法上需要声明注解(需在单元测试类中导包:import org.junit.Test;):@Test。
  5. 声明单元测试方法后,即可在方法体内写入相关代码。
  6. 代码写入后,左键单元测试方法名,右键Run As ->JUnit Test。
  7. 说明
  • 若执行结果没有异常,显示绿色进度条。
  • 若执行结果出现异常,显示红色进度条。

十三、Object类和包装类

  • Object(java.lang.Object)类
  1. Object类是所有Java类的根父类。
  2. 若在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类。
  3. Object类中的功能(属性和方法)具备通用性。

? ? ? ? ? ? ? ? -->equals():对象比较。??

性质

?

用途解析

对称性

若x.equals(y)返回true,则y.equals(x)也返回true。

自反性

x.equals(x)必须返回true。

传递性

若x.equals(y)返回true,且y.equals(z)也返回true,则x.equals(z)返回true。

一致性

若x.equals(y)返回true,则只要x和y内容不变,x.equals(y)一直为true。

x.equals(null)永为false。x.equals(y)[y和x不同类型的对象]永为false。

????????????????-->toString():对象打印。

????????4.Object类中只声明了一个空参的构造器。

  • 包装类(封装类)

基本数据类型

包装类

基本数据类型

包装类

包装类对应父类:Number

byte

Byte

short

Short

int

Integer

long

Long

float

Float

double

Double

Boolean

Boolean

char

Character

?

  • JDK 5新特性
  1. 自动装箱:基本数据类型 --> 包装类(举例:int num_2 = 22; Integer in_1 = num_2;)。
  2. 自动拆箱:包装类 --> 基本数据类型(举例<结合自动装箱的例子>:int num_3 = in_1;)

十四、杂项

  1. 局部变量(不包括形参)没有初始值
  2. 方法中,可以调用当前类的属性或方法,但不可以定义方法。
  3. 内存解析说明:引用类型的变量,只可能存储两类值: null 或 地址值(含变量的类型)。
  4. 匿名对象的使用:new Student().show(); 注:Student为对象名,show为方法名匿名对象仅可次单次调用。
  5. 方法重载:同一个类中,允许存在一个以上的同名方法,但需要它们的参数个数或参数类型不同。即同一个类,相同方法名,参数列表(个数/类型)不同,又称“两同一不同”。
  6. 可变个数形参的格式:数据类型 … 形参名
  7. Java中方法的参数传递方式只有一种,即值传递
  8. 赋值优先级:默认初始化 -> 显式初始化 -> 构造器中初始化 -> 通过“对象.方法“或”对象.属性“的方式赋值。
  9. JavaBean(可重用组件<类>)定义标准:1、类是公共的。2、有一个无参的公共构造器。3、有属性,且有对应的get、set方法。
  10. this关键字可理解为当前对象(方法中)或当前正在创建的对象(构造器中)。
  11. 方法重写:子类继承父类,对父类中同名同参的方法进行覆盖操作(重新写方法体)。
  12. super:子类中调用父类的属性或方法,格式为“super.属性“或”super.方法“。
  13. instanceof:判断(a instanceof A)中对象a是否为类A的实例,是则返回true,反之false。常用于向下转型时使用,避免转型失败直接报错而停止运行后续程序。
  14. 自动装箱注意点:Integer内部已定义IntegerCache结构,其中又定义Integer[],用于保存范围为-128~127的整数。若自动装箱时,对Integer赋值的范围符合Integer[],则直接指向该数组中元素,而不是重新创建(new)一个Integer对象,进而提高效率。反之,若不在Integer[]范围,则需要重新创建Integer对象来存放数据。

十五、面试题

  1. “==”与equals的区别
  • 运算符"=="的使用:
  1. 可以在基本数据类型和引用数据类型变量中使用。
  2. 若比较的是基本数据类型变量,则比较两个变量保存的数据是否相等(类型不一定相同)。
  3. 若比较的是引用数据类型变量,则比较两个变量的地址值是否相同,即两个引用是否指向同一对象实体。
  • equals()方法的使用:
  1. 只适用于引用数据类型。
  2. Object类中equals()方法的定义:

? ?public boolean equals(Object obj) {

?? ??????????? return (this == obj);

?? }

? ?说明:Object类中定义的equals()和“==”的作用是相同的,即比较两个变量的地址值是否相同。

  1. 如String、Date、File、包装类等皆已重写Object类中的equals()方法。则重写之后,比较的是两个对象的“实体内容”是否相同。
  2. 自定义类为使用equals()方法来比较两个对象(该类)的“实体内容”是否相同,需要重写Object类中的equals()方法。重写要求:比较两个对象的“实体内容”是否都相同。

?

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-10-11 17:48:24  更:2021-10-11 17:49:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 2:45:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码