java-第十章 面向对象思考-学习总结

第十章 面向对象思考

10.1 类的抽象和封装

类的抽象是指将类的实现和类的使用分离开 ,实现的细节被封装并且对用户隐藏 , 这被称为类的封装。

10.2 面向对象的思考

面向过程的范式重点在于设计方法 。 面向对象的范式将数据和方法耦合在一起构成对象 。 使用面向对象范式的软件设计重点在对象以及对对象的操作上 。
面向过程范式重在设计方法 。 面向对象范式将数据和方法都组合在对象中 。 使用面向对象范式的软件设计重在对象和对象上的操作 。 面向对象方法结合了面向过程范式的功能以及将数据和操作集成在对象中的特性 。
在面向过程程序设计中,数据和数据上的操作是分离的,而且这种做法要求传递数据给方法 。 面向对象程序设计将数据和对它们的操作都放在一个对象中 。 这个方法解决了很多面向过程程序设计固有的问题 。 面向对象程序设计方法以一种反映真实世界的方式组织程序,在真实世界中,所有的对象和属性及动作都相关联 。 使用对象提高了软件的可重用性,并且使程序更易于开发和维护 。 Java 程序设计涉及对对象的思考,一个 Java 程序可以看作是一个相互操作的对象集合 。

10.3 类的关系

为了设计类 , 需要探究类之间的关系 。 类中间的关系通常是关联 、 聚合 、 组合以及继承 。
[统一建模语言(英语:Unified Modeling Language,缩写 UML]
UML类图中,常见的有以下几种关系:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)

10.4 将基本数据类型值作为对象处理

基本数据类型值不是一个对象 ,但是可以使用 JavaAPI中的包装类来包装成一个对象 。
将 int 包装成 Integer 类 , 将 double 包装成 Double 类 , 将char 包装成 Character 类

10. 5 基本类型和包装类类型之间的自动转换

将基本类型值转换为包装类对象的过程称为装箱 ( boxing ) , 相反的转换过程称为开箱( unboxing) 。
Java 允许基本类型和包装类类型之间进行自动转换 。 如果一个基本类型值出现在需要对象的环境中 , 编译器会将基本类型值进行自动装箱 ; 如果一个对象出现在需要基本类型值的环境中,编译器会将对象进行自动开箱 。 这称为自动装箱和自动开箱 。

10.6 Biglnteger 和 BigDecimal 类

Biglnteger 类和 BigDecimal 类可以用于表示任意大小和精度的整教或者十进制數 。

10.7 String类

字符串是对象 , 可以通过 charAt(index) 方法从字符串中得到某个指定位置的字符 。 length()方法返回字符串的大小, substring 方法返回字符串中的子串 , indexOf 和 lastIndexOf 方法返回第一个或者最后一个匹配的字符或者子字符串 。

10.7.1 构造字符串

Sring变量存储的是对 String 对象的引用 , String 对象里存储的才是字符串的值 。 严格地讲 , 术语 String 变量 、 String 对象和字符串值是不同的 。 但在大多教情况下 ,它们之间的区别是可以忽略的 。 为简单起见 , 术语字符串将经常被用于指 String 变量 、String 对象和字符串的值 。

10.7.2 不可变字符串与限定字符串

String 对象是不可变的,他的内容是不能改变的。
在这里插入图片描述
因为字符串在程序设计中是不可变的,但同时又会频繁地使用 , 所以 Java 虚拟机为了提高效率并节约内存,对具有相同字符序列的字符串直接量使用同一个实例 。 这样的实例称为限定的 ( interned ) 字符串 。
在这里插入图片描述

s1 ==  s2 is false;
s1 == s3 is true;

10.7.3 字符串的替换和分隔

在这里插入图片描述

10.7.4 依照模式匹配、替换和分隔

matches
replaceAll replaceFirst split
tokens

10.7.5 字符串与数组之间的转换

字符串不是数组 ,但是字符串可以转换成数组 , 反之亦然 。
将字符串转换成一个字符数组 , 可以使用 toCharArray 方法 。
方法getChars(int srcBegin,int scrEnd,char[]dst,int dstBdgin)将下标从srcBegin到srcENd-1的子串复制到字符数组dst中下标dstBegin开始的位置。
在这里插入图片描述

10.7.6 将字符和数值转换成字符串

在这里插入图片描述

10.7.7 格式化字符串

在这里插入图片描述

10.7.8 StringBuilder和StringBuffer类

在这里插入图片描述

10.7.9 toString capacity length setLength charAt方法

在这里插入图片描述
如果超出构建器的容量 ,就用新的数组替換现有數组 。 新数组的大小为 2x ( 之前数组的长度 +1 ) 。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Object 是 Java 中的根类,是所有类的父类。所有的 Java 类(除了八个基本类型)都继承于 Object 类,因此可以调用 Object 类的方法。例如:toString()、equals()、hashCode() 等。 ### 回答2: jmu-java-03面向对象基础-object 是一门介绍面向对象编程的基础知识的课程。面向对象编程是一种思想,它的目标是把程序中的各个元素抽象成对象,并通过对象之间的交互实现程序的功能,是现代编程语言的主流之一。在这门课程中,学生将学习到对象的定义、类的概念、封装、继承和多态等基本概念和原则。 在面向对象编程中,对象是指具有特定属性和行为的实体,例如一个人、一辆车、一本书等。对象拥有自己的状态和行为,其行为可以通过方法来实现。类是对象的模板,可以看作是一种具有相似特征和行为的对象的集合。在类中,可以定义属性、方法和构造函数等。封装是面向对象编程的一个重要原则,它通过将对象的内部状态信息封装起来,从而实现了信息的隐藏和保护。 继承是指通过继承父类的属性和方法来创建一个新的子类的机制。子类可以继承并扩展父类的行为,从而实现了代码的重用性和可维护性。多态是指不同对象对同一消息做出不同的响应的能力。多态是面向对象编程中的一种普遍机制,它可以让程序具有更好的灵活性和扩展性。 这门课程将通过理论和实践相结合的方式来教授相关知识和技能。学生将通过编写程序来巩固所学内容,并提高编程能力。本门课程是学习Java编程的基础课程,也是后续Java编程课程的前置课程。具备面向对象编程基础的学生,将更容易掌握高级Java编程知识和技能。 ### 回答3: 面向对象编程(Object-Oriented Programming, OOP)是一种编程方式,它基于对象的概念,强调对数据的封装、继承和多态等特性,从而使得程序的结构更加清晰、易于维护和扩展。 OOP中最基本的概念是对象(Object),它是程序中的一个实体,有其自身的状态(state)和行为(behavior)。在Java语言中,对象由类(Class)定义,类是一组具有相同特征和行为的对象的模板。 类通常由属性(fields)和方法(methods)组成,属性可以理解为数据单元,方法则是实现类的动作。例如,一个人(Person)类可以包含属性如姓名、年龄等,方法如呼吸、吃饭等。 封装(Encapsulation)是OOP中的重要概念之一,它指对类的属性和方法进行隐藏和保护,只能通过类提供的公共接口访问。这样能够保证程序的安全性,同时也能够减少程序的耦合度,便于维护和扩展。在Java语言中,可以通过访问修饰符(private、protected、public)来实现封装。 继承(Inheritance)是另一个重要的OOP概念,它允许一个类(子类)从另一个类(父类)继承属性和方法,并在此基础上进行扩展。这样能够避免重复编写代码,同时也能够保持代码的一致性和可读性。在Java语言中,使用关键字extends来实现继承。 多态(Polymorphism)是OOP的另一个重要概念,它指同一个方法调用在不同情况下会产生不同的行为。在Java语言中,通过方法的重载(overloading)和重写(overriding)来实现多态。 总之,面向对象编程已经成为现代软件开发的主流,它使程序的开发更加清晰和高效,也更加适应复杂应用的开发。在学习Java编程的过程中,理解面向对象编程的基本概念,对于学习Java语言和掌握Java编程技能是至关重要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值