单例包装其他类 java_[java初探09]__关于java的包装类

前言 在Java语言的学习过程中,我们逐渐的理解了Java面向对象的思想,与类和对象的应用.但是在基本数据类型的使用上,我们无法将其定义为一个对象,通过使用对象的方法来使用它们,但是Java语言的思想又是面向对象的.那么在Java语言中,是否能够解决这个问题,使基本数据类型能够以对象的形式使用呢.答案当然是有的,本篇文章就基于这点介绍学习一下Java的包装类.

什么是包装类

包装类就是为了使用户能够将基本数据类型视作对象处理而对每个基本数据类型进行重新包装的类.我们可以通过这些类来new一个基本数据类型的对象.从而使基本数据类型也能够视为对象来处理.

我们在前面的学习中了解到,Java语言其实就是基于一套Java的标准类库的,我们编写Java程序就是在其基础上来编程的,我们也知道,一项问题通过面向对象的思想解决,就是要先将其抽象为对象,然后分析其属性和行为,最后封装成类,加入到类库之中,然后通过用户的调用,解决问题.

所以在Java语言中,为了使各种基本数据类型能够当作对象来使用,它给我们提供了各基本数据类型的包装类.

包装类存放在Java类库的java.lang包下:

e813b47bb62d97c0a099194f7e7e6732.gif

关于java.lang包:

java.lang是提供利用 Java 编程语言进行程序设计的基础类。最重要的类是Object(它是类层次结构的根)和 Class(它的实例表示正在运行的应用程序中的类)。把基本类型的值当成一个对象来表示通常很有必要。包装器类 Boolean、Character、Integer、Long、Float 和 Double 就是用于这个目的。

Integer类 我们知道,整数类型有byte,short,int,long四种.我们回顾一下,byte的大小是一个字节(即如其命名一般只有一byte大小),short则占两个字节(byte)int占四个字节long占八个字节,他们的内存大小关系其实是一个以2为乘数为基础递增的关系.所以在JAVA语言中也有与其对应的包装类,这里就只挑其中最常使用到的int型的包装类Integer类做说明.

9bddff8b9763b1cc96caad60df089391.png

Integer类在对象中包装了一个iint型的值,该类的对象包含一个int类型的字段.此外该类还提供了几个方法,能够使int型和String型相互转换.同时还有提供了一些处理int类型时非常有用的常量和方法.

构造方法 Integer类提供了两种构造对象的方法.

Interger(int number) 该方法以一个int型变量作为参数来获取Interger对象.

Interger(String str) 该方法以一个String型变量作为参数创建Interger对象。

Integer integer = new Integer(123);

Integer integer1 = new Integer("23");

Integer类提供的一些常用方法:

toString()方法

compareTo()方法

eqalus()方法

floatvalue()方法

valueOf(String str)方法

paseInt(String str)方法

bb7448b614132c09c52e6ae3c8b1de71.gif

其中需要注意的是,在以String类型构建对象的时候,参数不能以真正随意的字符串来定义。而是以字符串的形式,将一段int型数据存放在String类型中,然后传参使用构造方法构建对象。

compareTo方法是在数字上比较两个Integer对象,如果他们相等,返回0;如果对象小于传入的参数对象,则返回负值。反之返回正值。 equals方法比较两个对象是否相等。返回的是boolean型数据。 其他的几个方法则是类型转换,讲对象的类型转换以其他几种基本数据类型输出。

valueOf(String str)方法与paseInt(String str)方法的区别就是前者返回的是一个Integer对象,可以调用其方法,后者返回的是一个整数值.

// 将一个String值的数据以Integer对象返回.

System.out.println(Integer.valueOf(str).toString());

// 将一个String字符串中的数字以等价的int整数值返回.

System.out.println(Integer.parseInt(str));

关于整数类型的其他几种类型的包装类于Integer类是类似的。

Boolean类

4594537b8df05bdea1da5bd5e13505ef.png

我们可以发现,Boolean类中的方法要少的多.

构造方法

Boolean(boolean)

Boolean(String)

Boolean aBoolean = new Boolean(12<11);

Boolean aBoolean1 = new Boolean("flase");

常用方法 常用方法其实和Integer类似.

System.out.println(aBoolean.toString());

//将对象的值以对应的boolean值返回

System.out.println(aBoolean.booleanValue());

//valueOf方法

System.out.println(Boolean.valueOf(str));

//paresBoolean方法

System.out.println(Boolean.parseBoolean(str));

// equals方法

System.out.println(aBoolean.equals(aBoolean1));

其中valueOf方法与paresBoolean方法的区别也是前者返回的是一个对象,后者返回的是一个boolean值.

character类

character类其实就是char类型的包装类.

79217c6b9bc99398358e611764ee6fcb.png

可以看到character类中的方法体众多,这可能也更char型是我们经常使用到的数据类型,并且关于它的操作也非常多的原因.

构造方法

Character character = new Character('a');

Character类的常用方法

charvalue()方法

compareTo()方法

equals()方法

toUpperCase(char ch)方法,将字符转换为大写

toLowerCase(char ch)方法.将字符转换为小写

toString()方法

isUpperCase(char ch)方法,判断是否为大写,返回值为boolean型

isLowerCase(char ch)方法,判断是否为小写,返回值为boolean型

// 将对象以char型值返回

System.out.println(character.charValue());

//以数字比较两个对象

System.out.println(character.compareTo(character1));

//equals方法比较两个对象

System.out.println(character.equals(character1));

//大小写转换

System.out.println(Character.toLowerCase(character));

System.out.println(Character.toUpperCase(character1));

//判断大小写

System.out.println(Character.isLowerCase(character));

System.out.println(Character.isUpperCase(character1));

}

1772141615d2ad6a531a49cbd74fec51.png

Double类 Float类与Double类类似,double与float都是浮点类型,大小分别是float的四字节,double的八字节.这里就只简单看看Double类.

5c9a035351f2639b5d0219fab37be21f.png

可以看到Double的构造方法也是两种,一种参数为double型,一种为String型,其实几个基本数据类型的包装类都很类似,毕竟他们都是为了实现相似的功能,将基本数据类型当做对象来使用.

构造方法

Double aDouble = new Double(12.345d);

Double aDouble1 = new Double("234.3456");

常用方法 常用方法大多和上面了解过的其他包装类的方法类似,这里就不在介绍了.

isNaN()方法,如果此double值是非数字值返回flase

//常用方法

System.out.println(aDouble1.isNaN());

System.out.println(aDouble.equals(aDouble1));

System.out.println(aDouble.compareTo(aDouble1));

System.out.println(aDouble.floatValue());

Double.valueOf(aDouble);

Double.parseDouble(str);

Number类 Number类是一个抽象类,它是BigDecimal,BigInteger,Byte,Double,Float,Integer,Long和short这一系列表示数字类型的包装类的父类.Number的子类必须提供将表示的数值转换为byte,double等基本数据类型(非字符及字符串类型)的方法.

8bb1ce7aeea671226fee309864915baa.png

这些发方法就是:

3891352d510a05609ce9a6516a5b5510.png

Number类的方法分别被Number各子类所实现,也就是说,在Number类的所有方法中都包含以上几种方法.(这其实就是面向对象的多态性的一种体现)

源代码

package day_4_8;

/**

* @outhor xiaoshe

* @date 2019/4/8 - @time 22:26

* 包装类

*/

public class sty_packgingclass {

public static void main(String[] args) {

sty_packgingclass packgingclass = new sty_packgingclass();

packgingclass.packgingInt();

packgingclass.packgingBoolean();

packgingclass.packgingCharacter();

packgingclass.packgingdouble();

}

/**

* int型的包装类Integer。

*/

public void packgingInt(){

String str = "122";

// 通过int型参数构建Integer对象

Integer integer = new Integer(234);

// 通过String型参数构建Integer对象

Integer integer1 = new Integer("234");

//直接以对象输出

System.out.println(integer);

System.out.println(integer1);

// 以将对象以其他类型输出

System.out.println(integer.byteValue());

System.out.println(integer.floatValue());

// Integer类提供的几个常用的方法

// 通过toString方法讲对象以字符串形式输出。

System.out.println(integer.toString());

// compareTO方法和equals方法比较两个Integer的值。

System.out.println(integer.equals(integer1));

System.out.println(integer.compareTo(integer1));

// 将一个String值的数据以Integer对象返回.

System.out.println(Integer.valueOf(str).toString());

// 将一个String字符串中的数字以等价的int整数值返回.

System.out.println(Integer.parseInt(str));

}

/**

* Boolean类

*/

public void packgingBoolean(){

String str ="flase";

Boolean aBoolean = new Boolean(12<11);

Boolean aBoolean1 = new Boolean("flase");

System.out.println(aBoolean1);

System.out.println(aBoolean.toString());

//将对象的值以对应的boolean值返回

System.out.println(aBoolean.booleanValue());

//valueOf方法

System.out.println(Boolean.valueOf(str));

//paresBoolean方法

System.out.println(Boolean.parseBoolean(str));

// equals方法

System.out.println(aBoolean.equals(aBoolean1));

}

/**

* character类

*/

public void packgingCharacter(){

//构造方法实例化对象

Character character = new Character('A');

Character character1 = new Character('b');

// 将对象以char型值返回

System.out.println(character.charValue());

//以数字比较两个对象

System.out.println(character.compareTo(character1));

//equals方法比较两个对象

System.out.println(character.equals(character1));

//大小写转换

System.out.println(Character.toLowerCase(character));

System.out.println(Character.toUpperCase(character1));

//判断大小写

System.out.println(Character.isLowerCase(character));

System.out.println(Character.isUpperCase(character1));

}

/**

* Double类

*/

public void packgingdouble(){

String str = "123.456d";

Double aDouble = new Double(12.345d);

Double aDouble1 = new Double("234.3456");

//常用方法

System.out.println(aDouble1.isNaN());

System.out.println(aDouble.equals(aDouble1));

System.out.println(aDouble.compareTo(aDouble1));

System.out.println(aDouble.floatValue());

Double.valueOf(aDouble);

Double.parseDouble(str);

}

}

更新时间: 2019-4-9 2:08

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园建设方案旨在通过融合先进技术,如物联网、大数据、人工智能等,实现校园的智能化管理与服务。政策的推动和技术的成熟为智慧校园的发展提供了基础。该方案强调了数据的重要性,提出通过数据的整合、开放和共享,构建产学研资用联动的服务体系,以促进校园的精细化治理。 智慧校园的核心建设任务包括数据标准体系和应用标准体系的建设,以及信息化安全与等级保护的实施。方案提出了一站式服务大厅和移动校园的概念,通过整合校内外资源,实现资源共享平台和产教融合就业平台的建设。此外,校园大脑的构建是实现智慧校园的关键,它涉及到数据中心化、数据资产化和数据业务化,以数据驱动业务自动化和智能化。 技术应用方面,方案提出了物联网平台、5G网络、人工智能平台等新技术的融合应用,以打造多场景融合的智慧校园大脑。这包括智慧教室、智慧实验室、智慧图书馆、智慧党建等多领域的智能化应用,旨在提升教学、科研、管理和服务的效率和质量。 在实施层面,智慧校园建设需要统筹规划和分步实施,确保项目的可行性和有效性。方案提出了主题梳理、场景梳理和数据梳理的方法,以及现有技术支持和项目分级的考虑,以指导智慧校园的建设。 最后,智慧校园建设的成功依赖于开放、协同和融合的组织建设。通过战略咨询、分步实施、生态建设和短板补充,可以构建符合学校特色的生态链,实现智慧校园的长远发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值