【java学习—八】包装类和toString(3)

编程入门 行业动态 更新时间:2024-10-28 20:28:43

【<a href=https://www.elefans.com/category/jswz/34/1770091.html style=java学习—八】包装类和toString(3)"/>

【java学习—八】包装类和toString(3)

文章目录

  • 1. 包装类
    • 1.1. 基本数据类型包装成包装类的实例 --- 装箱
    • 1.2. 获得包装类对象中包装的基本类型变量 --- 拆箱
  • 2. 字符串转和基本数据类型的相互转换
    • 2.1. 字符串转换成基本数据类型
    • 2.2. 基本数据类型转换成字符串
  • 3. toString


1. 包装类

针对八种基本定义相应的引用类型—包装类(封装类)
有了类的特点,就可以调用类中的方法。

基本数据类型包装类
booleanBoolean
byteByte
shortShort
intInteger
longLong
charCharacter
floatFloat
doubleDouble

1.1. 基本数据类型包装成包装类的实例 — 装箱

(1) 通过包装类的构造器实现:

int i = 500; Integer t = new Integer(i);

(2) 还可以通过字符串参数构造包装类对象:

Float f = new Float(“4.56”);
Long l = new Long(“asdf”); //NumberFormatException

1.2. 获得包装类对象中包装的基本类型变量 — 拆箱

调用包装类的 .xxxValue() 方法:

boolean b = bObj.booleanValue();

:JDK1.5 之后,支持自动装箱,自动拆箱。但类型必须匹配。

package day08;public class Test {public static void main(String[] args) {Integer i = new Integer(112);Integer i1 = 112;//自动装箱int i0 = i.intValue();int i2 = i1;//自动拆箱System.out.println(i0);//		boolean b = new Boolean("false").booleanValue();boolean b = new Boolean("false");//自动拆箱Boolean b1 = true;//自动装箱System.out.println(b);}}

2. 字符串转和基本数据类型的相互转换

2.1. 字符串转换成基本数据类型

(1) 通过包装类的构造器实现:

	int i = new Integer("12");

(2) 通过包装类的 parseXxx(String s) 静态方法:

	Float f = Float.parseFloat("12.1");

例:

package day08;public class Test {public static void main(String[] args) {int i = Integer.parseInt("123");float f = Float .parseFloat("0.40");boolean b = Boolean.parseBoolean("flase");}}

2.2. 基本数据类型转换成字符串

(1) 调用字符串重载的 valueOf() 方法:

String fstr = String.valueOf(2.34f);

例:

package day08;public class Test {public static void main(String[] args) {//字符串转换成基本数据类型int i = Integer.parseInt("123");float f = Float .parseFloat("0.40");boolean b = Boolean.parseBoolean("flase");//基本数据类型转换成字符串String istr = String.valueOf(i);String fstr = String.valueOf(f);String bstr = String.valueOf(b);}}

重点:基本数据类型的包装类:主要作用就是基本数据类型与字符串直接的转化

(2) 更直接的方式:

String intStr = 5 + ""

3. toString

父类Object的toString方法就是输出当前对象的内存地址(如果想要输出类的其他信息,重写toString方法)

举例:(MyDate.java和Test.java在包day08中)

  1. 不重写toString

MyDate类:

package day08;public class MyDate {public MyDate(int year, int month, int day) {this.year = year;this.month = month;this.day = day;}int year;int month;int day;@Overridepublic boolean equals(Object obj) {int flag = 1;if(obj instanceof MyDate) {MyDate md = (MyDate) obj;flag = 0;if(this.year != md.year) {flag += 1;}if(this.month != md.month) {flag += 1;}if(this.day != md.day) {flag += 1;}}if(flag == 0) {return true;}else {return false;}}}

Test.java:

package day08;public class Test {public static void main(String[] args) {MyDate m = new MyDate(2023,12,12);System.out.println(m.toString());//输出: day08.MyDate@2133c8f8System.out.println(m);           //输出: day08.MyDate@2133c8f8}}

运行结果:

  1. 重写toString

MyDate.java:

package day08;public class MyDate {public MyDate(int year, int month, int day) {this.year = year;this.month = month;this.day = day;}int year;int month;int day;@Overridepublic boolean equals(Object obj) {int flag = 1;if(obj instanceof MyDate) {MyDate md = (MyDate) obj;flag = 0;if(this.year != md.year) {flag += 1;}if(this.month != md.month) {flag += 1;}if(this.day != md.day) {flag += 1;}}if(flag == 0) {return true;}else {return false;}}@Overridepublic String toString() {String str = this.year + "-" + this.month + "-" + this.day;return str;}}

Test.java:

package day08;public class Test {public static void main(String[] args) {MyDate m = new MyDate(2023,12,12);System.out.println(m.toString());System.out.println(m);//打印 m 对象相当于执行打印 m.toString()}
}	

运行结果:

更多推荐

【java学习—八】包装类和toString(3)

本文发布于:2023-12-04 18:11:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1661790.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:java   toString

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!