本文主要是介绍JAVA-面向对象(含基本数据类型,大数以及String),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.区别于面向过程
- 面向过程重点在于设计方法
- 面向对象将数据和方法耦合在一起构成对象.
2.类的抽象与封装
- 类的抽象: 将类的实现和类的使用分离
- 类的封装: 实现的细节被封装并且对用户隐藏
3.类的关系(关联,聚合以及组合)
1.关联
- 常见的二元关系,描述两个类之间的活动
- 多样性: 放置于类的边上,用于给定UML图中关系所涉及的类的对象数(*代表无范围).
eg. 学生选组课程为学生类和课程类之间的关联
2.聚集和组合(简单起见,可以不区分而都将其称为组合)
- 聚集是关联的一种特殊形式,代表了两个对象之间的归属关系.其对has-a关系进行建模.
- 所有者对象:聚集对象,其类:聚集类.
- 从属对象:被聚集对象,类:被聚集类.
- 组合: 被聚集对象的存在依赖于聚集对象. eg.名字依附于人,若人亡则名字亦不存在
- 聚集: 被聚集对象存在不依赖于聚集对象. eg.地址不依附于人,其客观存在,人亡与否不影响.
4.基本数据类型作为对象处理
- 基本数据类型值不是对象,但是可以用Java API中的包装类来包装成一个对象.
- java.lang包里为基本数据类型提供了Boolean, Character, Double, Float, Byte, Short, Integer, Long等包装类
- 数值包装类基本都提供了xxxValue()的方法将对象转换为基本类型值
- 既可以用基本数据类型也可用字符串类构造包装类. eg.new Double("5.44");
- Java可以根据上下文自动地将基本类型与包装对象进行转换.
注意事项:
- 包装类没有无参构造方法
- 包装类的实例不可改变(一旦创建不再改变)
简介
- 每个数值包装类都有常量MAX_VALUE, MIN_VALUE对应其基本数据类型的最大最小值
- 每个数值包装类都包含各自方法doubleValue(),floatValue(),xxxValue()...返回包装对象对应的xxx值
- 包含compareTo方法用于比较两个数值(1,0,-1)
- 有一个有用的静态方法valueOf(String s),该方法创建一个对象并将其初始化为指定字符串表示的值
- 可能含有parseXxx(String s)方法将一个xxx数值字符串s转化为一个xxx值
基本类型和包装类类型之间的自动转换
- 装箱:基本数据类型值转换为包装类对象的过程
- 拆箱:反之
5.BigInteger类和BigDecimal类
- 当进行大精度/大数运算时可用BigInteger类和BigDecimal类来进行
- 创建方法newBigXxxx(String s)
- 常见方法: add, subtract, multiple, divide, remainder
6.String方法
- String对象不可改变-字符串一旦创建,内容不能再改变(改变或为创建了新得对象)
1.驻留字符串
eg.
String s1 = "Java';
String s2 = new String("Java);
String s3 = "java;
则s1==s3且s1!=s2
s1,s3指向了相同的主流字符串"Java",而s1与s2为不同的字符串对象
2.替换和拆分
- 替换: replace(); String
- replace, replaceFirst, replaceAll
- 拆分: split(); String
- 以上都为返回一个源自元素是字符串的新字符串(组)
3.使用模式匹配,替换和拆分
- 正则表达式(regex): 为一个字符串,用于描述匹配一个字符串集的模式.可以通过指定某个模式来匹配,替换和拆分一个字符串.
- matches(String s): s为正则表达式. 替换和拆分中的参数也可用正则表达式代替
4.字符串和字符数组之间的转换
- 字符串转换为字符数组: toCharArray();
eg. char[] ch = s.toCharArray();
- 字符数组->字符串: 构造方法或方法valueOf();
eg. String s = String.valueOf(ch);
5.将字符和数值转化为字符串
- String str = xxx + "";
- valueOf()方法
6.格式化字符串
-
String.format(format, item1, item2, ...);
-
与printf类似. printf显示而format返回
eg.
String s = String.format("%7.2f%6d%-4s", 45.556, 14, "AB");
显示: ..45.56....14AB.. (..表示空格)
7.StringBuilder与StringBuffer
- 类似于String类,但其可以改变
- 二者主要区别在于StringBuffer类中修改缓冲区的方法是同步的(只有一个任务被允许执行该方法)(适用于多任务并发访问); 单任务访问时StringBuilder更有效
- 构造方法:StringBuilder(),(capacity: int),(s: String)
- 方法: 30多个用于管理该构建起以及修改该构建器字符串的方法.
1.修改
java.lang.StringBuilder |
作用 |
append(data: char[]) : StringBuilder |
追加一个字符数组 |
append(data: char[], offset: int, len: int) :... |
追加data中的指定子数组 |
append(v: primitiveType): ... |
将一个基本类型值作为字符串追加 |
append(s: String) |
追加一个字符串 |
delete(startIndex: int, endIndex: int):... |
删除指定范围的字符 |
deleteCharAt(index: int):... |
删除给定下标的字符 |
insert(index: int, data: char[], offset: int, len: int):... |
给定下标为止插入数组data的子数组 |
insert(offset: int, data: char[]):... |
向offset位置插入data |
insert(offset: int, b: primitiveType):... |
向指定位置插入一个转换为字符串的值 |
insert(offset: int, s:String):... |
offset位置插入字符串 |
replace(startIndex: int, endIndex: int, s:String) |
指定位置替换为给定字符串 |
reverse() |
倒置 |
setCharAt(index: int, ch: char) |
指定下标设置为新得字符 |
2.toString, capacity, length, setLength, charAt方法
注:capaciy为容量,length为长度
这篇关于JAVA-面向对象(含基本数据类型,大数以及String)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!