Java教程

JAVA-面向对象(含基本数据类型,大数以及String)

本文主要是介绍JAVA-面向对象(含基本数据类型,大数以及String),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.区别于面向过程

  • 面向过程重点在于设计方法
  • 面向对象将数据和方法耦合在一起构成对象.

2.类的抽象与封装

  • 类的抽象: 将类的实现和类的使用分离
  • 类的封装: 实现的细节被封装并且对用户隐藏

3.类的关系(关联,聚合以及组合)

1.关联

  • 常见的二元关系,描述两个类之间的活动
  • 多样性: 放置于类的边上,用于给定UML图中关系所涉及的类的对象数(*代表无范围).
    eg. 学生选组课程为学生类和课程类之间的关联

2.聚集和组合(简单起见,可以不区分而都将其称为组合)

  • 聚集是关联的一种特殊形式,代表了两个对象之间的归属关系.其对has-a关系进行建模.
  • 所有者对象:聚集对象,其类:聚集类.
  • 从属对象:被聚集对象,类:被聚集类.
  1. 组合: 被聚集对象的存在依赖于聚集对象. eg.名字依附于人,若人亡则名字亦不存在
  2. 聚集: 被聚集对象存在不依赖于聚集对象. eg.地址不依附于人,其客观存在,人亡与否不影响.

4.基本数据类型作为对象处理

  • 基本数据类型值不是对象,但是可以用Java API中的包装类来包装成一个对象.
  • java.lang包里为基本数据类型提供了Boolean, Character, Double, Float, Byte, Short, Integer, Long等包装类
  • 数值包装类基本都提供了xxxValue()的方法将对象转换为基本类型值
  • 既可以用基本数据类型也可用字符串类构造包装类. eg.new Double("5.44");
  • Java可以根据上下文自动地将基本类型与包装对象进行转换.

注意事项:

  1. 包装类没有无参构造方法
  2. 包装类的实例不可改变(一旦创建不再改变)

简介

  1. 每个数值包装类都有常量MAX_VALUE, MIN_VALUE对应其基本数据类型的最大最小值
  2. 每个数值包装类都包含各自方法doubleValue(),floatValue(),xxxValue()...返回包装对象对应的xxx值
  3. 包含compareTo方法用于比较两个数值(1,0,-1)
  4. 有一个有用的静态方法valueOf(String s),该方法创建一个对象并将其初始化为指定字符串表示的值
  5. 可能含有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.字符串和字符数组之间的转换

  1. 字符串转换为字符数组: toCharArray();
    eg. char[] ch = s.toCharArray();
  2. 字符数组->字符串: 构造方法或方法valueOf();
    eg. String s = String.valueOf(ch);

5.将字符和数值转化为字符串

  1. String str = xxx + "";
  2. 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)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!