(17)Java中的封装类

封装类简介

  • 什么是封装类:也叫包装类。为了能将基本类型转化为对象进行处理,并能连接相关的方法,Java为每个基本数据类型都提供了包装类,这样便可以把这些基本类型转换为对象来进行处理了。需要说明的是,Java是可以直接处理基本数据类型的,但在有些情况下需要将其作为对象来处理,这时就需要将其转换为包装类了。

什么是API:Application Programming Interface,应用程序编程接口,是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细。

  • 封装类有哪些

    • 基本数据类型:byte<short<char<int<long<float<double。boolean。
    • 八种包装类(对象不分大小):除了char对应Character,int对应Integer,其他的包装类都是把基本数据类型的首字母大写。
  • 为什么存在基本数据类型和封装类型呢?

  1. Java语言中,new一个对象存储在堆里,我们通过栈中的引用来使用这些对象;但是对于经常用到的一系列类型如int,如果我们用new将其存储在堆里就不是很有效——特别是简单的小的变量。所以就出现了基本类型,同C++一样,Java采用了相似的做法,对于这些类型不是用new关键字来创建,而是直接将变量的值存储在栈中,因此更加高效。

  2. 有了基本类型之后为什么还要有包装器类型呢?我们知道Java是一个面相对象的编程语言,基本类型并不具有对象的性质,为了让基本类型也具有对象的特征,就出现了包装类型(如我们在使用集合类型Collection时就一定要使用包装类型而非基本类型),它相当于将基本类型“包装起来”,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作。

  3. 另外当需要往ArrayList,HashMap中放东西时,像int,double这种基本类型是放不进去的,因为容器都是装object的,这是就需要这些基本类型的包装器类了。

  4. 这两种类型可以相互转换。

  • 两种类型的区别:
  1. 声明方式不同,基本类型不适用new关键字,而包装类型需要使用new关键字来在堆中分配存储空间;

  2. 存储方式及位置不同,基本类型是直接将变量值存储在栈中,而包装类型是将对象放在堆中,然后通过引用来使用;

  3. 初始值不同,基本类型的初始值如int为0,boolean为false,而包装类型的初始值为null

  4. 使用方式不同,基本类型直接赋值直接使用就好,而包装类型在集合如Collection、Map时会使用到。

Integer

  • **概念:**Integer类在对象中包装了一个基本类型int的值。该类的对象包含一个int类型的字段。此外,该类提供了多个方法,能在int类型和String类型之间相互转换,同时还提供了其他一些处理int类型时非常有用的常量和方法。

  • 常用方法

  1. 方法:byteValue();返回值:byte;功能描述:以 byte 类型返回该 Integer 的值。

  2. 方法:compareTo(Integer anotherInteger);返回值:int;功能释义:在数字上比较两个 Integer 对象。

     	public static void main(String[] args) {
     		Integer integer = new Integer(156);
     		int ct1 = integer.compareTo(new Integer(155));
     		int ct2 = integer.compareTo(new Integer(156));
     		int ct3 = integer.compareTo(new Integer(157));
     		System.out.println("ct1="+ct1);
     		System.out.println("ct2="+ct2);
     		System.out.println("ct3="+ct3);
     	}
     	//执行结果
     	ct1=1
     	ct2=0
     	ct3=-1
    
  3. 方法:equals(Object obj);返回值:boolean;功能释义:比较此对象与指定对象。

  4. 方法:intValue();返回值:int;功能释义:以 int 类型返回该 Integer 的值。

  5. 方法:shortValue();返回值:short;功能释义:以 short 类型返回该 Integer 的值。

  6. 方法:toString();返回值:String;功能释义:返回一个表示该 Integer 值的 String 对象。

  7. 方法:valueOf(String s);返回值:static Integer;功能释义:返回保存指定的 String 的值的 Integer 对象。

  8. 方法:valueOf(int i);返回值:static Integer;功能释义:返回一个表示指定的 int 值的 Integer 实例。

     	Integer i = Integer.valueOf(456);//将基本数据类型转化为包装类
    
  9. 方法:valueOf(String s, int radix);返回值:static Integer;功能释义:返回一个 Integer 对象,该对象中保存了用第二个参数提供的基数进行解析时从指定的 String 中提取的值。其中,radix表示字符串的进制。最后结果是十进制的数。

  10. 方法:parseInt(String s);返回值:static int;功能释义:将字符串参数作为有符号的十进制整数进行解析。

    	public static void main(String[] args) {
    		String[] str = {"55","41","10","8","-6","33","18"};
    		int sum = 0;
    		for (int i = 0; i < str.length; i++) {
    			//将包字符串类型转化为基本数据类型
    			sum += Integer.parseInt(str[i]);
    		}
    		System.out.println("数组中的各元素之和是:"+sum);
    	}
    	//执行结果
    	数组中的各元素之和是:159
    
  11. 方法:parseInt(String s, int radix);返回值:static int;功能释义:使用第二个参数指定的基数,将字符串参数解析为有符号的整数。

  12. 方法:toBinaryString(int i);返回值:static String;功能释义:以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。

  13. 方法:toHexString(int i);返回值:static String;功能释义:以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。

  14. 方法:toOctalString(int i);返回值:static String;功能释义:以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式。

  15. 方法:toString(int i);返回值:static String;功能释义:返回一个表示指定整数的 String 对象。

  16. 自动拆装箱:基本数据类型的自动装箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0开始提供的功能。

    - 基本数据类型的自动装箱功能
    		//一般我们要创建一个类的对象实例的时候,我们会这样:
    		BBB bbb = new BBB();
    		//当我们创建一个Integer对象时,却可以这样:
    		Integer i = 100; //(注意:不是 int i = 100; )
    		//实际上,执行上面那句代码的时候,系统为我们执行了:
    		Integer i = Integer.valueOf(100);
    - 自动拆箱(unboxing),也就是将对象中的基本数据从对象中自动取出。
    
    		Integer ii = new Integer(200);
    		int b = ii;
    		//执行上面那句代码的时候,系统为我们执行了:int b = i1.intValue();
    
  • 常量
  1. MAX_VALUE:值为 2^31-1 的常量,它表示 int 类型能够表示的最大值。

  2. MIN_VALUE:值为 -2^31 的常量,它表示 int 类型能够表示的最小值。

  3. SIZE:用来以二进制补码形式表示 int 值的比特位数。

  4. TYPE:表示基本类型 int 的 Class 实例。

Boolean

  • 构造方法
  1. Boolean(boolean value):分配一个表示 value 参数的 Boolean 对象。

  2. Boolean(String s):当字符串为“true”不分大小写时,得到Boolean对象结果都为true,否则其他的字符串包括null结果都为false。

  • 常用方法
  1. 方法:booleanValue();返回值:boolean;功能释义:将此 Boolean 对象的值作为基本布尔值返回。

  2. 方法:equals(Object obj);返回值:boolean;功能释义:当且仅当参数不是 null,而是一个与此对象一样,都表示同一个 Boolean 值的 boolean 对象时,才返回 true。

  3. 方法:parseBoolean(String s);返回值:static boolean;功能释义:将字符串参数解析为 boolean 值。

  4. 方法:toString();返回值:String;功能释义:返回表示该布尔值的 String 对象。

  5. 方法:valueOf(String s);返回值:static Boolean;功能释义:返回一个用指定的字符串表示值的 Boolean 值。

Byte

  • 构造方法
  1. Byte(byte value):构造一个新分配的 Byte 对象,以表示指定的 byte 值。byte为8bit位数。int为32bit位数。

  2. Byte(String s):构造一个新分配的 Byte 对象,以表示 String 参数所指示的 byte 值。

  • 常用方法
  1. 方法:byteValue();返回值:byte;功能释义:作为一个 byte 返回此 Byte 的值。

  2. 方法:compareTo(Byte anotherByte);返回值:int;功能释义:在数字上比较两个 Byte 对象。

  3. 方法:doubleValue();返回值:double;功能释义:作为一个 double 返回此 Byte 的值。

  4. 方法:intValue();返回值:int;功能释义:作为一个 int 返回此 Byte 的值。

  5. 方法:parseByte(String s);返回值:static byte;功能释义:将 string 参数解析为有符号的十进制 byte。

  6. 方法:toString();返回值:String;功能释义:返回表示此 Byte 的值的 String 对象。

  7. 方法:valueOf(String s);返回值:static Byte;功能释义:返回一个保持指定 String 所给出的值的 Byte 对象。

  8. 方法:equals(Object obj);返回值:boolean;功能释义:将此对象与指定对象比较。

Character

Character类:Character类在对象中包装一个基本类型为char的值。一个Character类型对象包含类型为char的单个字段。该类提供了几种方法,以确定字符的类别(小写字母、数字等),并将字符从大写转换成小写,反之亦然。

  • 构造方法
  1. Character(char value):构造一个新分配的 Character 对象,用以表示指定的 char 值。一旦Character类被创建,它包含的数值就不能改变了。
  • 常用方法
  1. 方法:charValue();返回值:char;功能释义:返回此 Character 对象的值。

  2. 方法:compareTo(Character anotherCharacter);返回值:int;功能释义:根据数字比较两个 Character 对象。

     	//先转化成阿斯克吗中的数字,然后比较,那要这个数减去要比较的数,得出结果!
     	Character character1 = new Character('c');//99
     	Character character2 = new Character('a');//97
     	Character character3 = new Character('c');//99
     	Character character4 = new Character('d');//100
     	System.out.println("character="+character1);
     	System.out.println(character1.compareTo(character2));
     	System.out.println(character1.compareTo(character3));
     	System.out.println(character1.compareTo(character4));
     	//执行结果
     	character=c
     	2
     	0
     	-1
    
  3. 方法:equals(Object obj);返回值:boolean;功能释义:将此对象与指定对象比较。

  4. 方法:toUpperCase(char ch);返回值:static char;功能释义:将字符参数转换为大写。

  5. 方法:toLowerCase(char ch);返回值:static char;功能释义:将字符参数转换为小写。

  6. 方法:toString();返回值:String;功能释义:返回表示此 Character 值的 String 对象。

  7. 方法:isUpperCase(char ch);返回值:static boolean;功能释义:确定指定字符是否为大写字母。

  8. 方法:isLowerCase(char ch);返回值:static boolean;功能释义:确定指定字符是否为小写字母。

  9. 方法:isLetter(char ch);返回值:static boolean;功能释义:确定指定字符是否为字母。

  10. 方法:isDigit(char ch);返回值:static boolean;功能释义:确定指定字符是否为数字。

  11. 方法:isWhitespace(char ch);返回值:static boolean;功能释义:确定指定字符依据 Java 标准是否为空白字符。

  12. 方法:valueOf(char c);返回值:static Character;功能释义:返回一个表示指定 char 值的 Character 实例。

  13. 方法:isLetterOrDigit(char ch);返回值:static boolean;功能释义:确定指定字符是否为字母或数字。

Double

  • 构造方法
  1. Double(double value):构造一个新分配的 Double 对象,它表示基本的 double 参数。

  2. Double(String s):构造一个新分配的 Double 对象,表示用字符串表示的 double 类型的浮点值。

     	Double d = new Double(20.3);
     	Double d2 = new Double("20.55");
     	//注意:传入的字符串必须是数字型的,否则会抛出NumberFormatException异常。
    
  3. 常用方法

  4. 方法:byteValue();返回值:byte;功能释义:以 byte 形式返回此 Double 的值(通过强制转换为 byte)。

  5. 方法:compare(double d1, double d2);返回值:static int;功能释义:比较两个指定的 double 值。

  6. 方法:equals(Object obj);返回值:boolean;功能释义:将此对象与指定对象比较。

  7. 方法:intValue();返回值:int;功能释义:以 int 形式返回此 Double 的值(通过强制转换为 int 类型)。

  8. 方法:isNaN();返回值:boolean;功能释义:如果此 Double 值是非数字(NaN)值,则返回 true;否则返回 false。

  9. 方法:isNaN(double v);返回值:static boolean;功能释义: 如果指定的数是一个 NaN 值,则返回 true;否则返回 false。

  10. 方法:toString();返回值:String;功能释义:返回此 Double 对象的字符串表示形式。

  11. 方法:valueOf(String s);返回值:static Double;功能释义:返回保存用参数字符串 s 表示的 double 值的 Double 对象。

  12. 方法:doubleValue();返回值:double;功能释义:返回此 Double 对象的 double 值。

  13. 方法:longValue();返回值:long;功能释义:以 long 形式返回此 Double 的值(通过强制转换为 long 类型)。

  14. 方法:compareTo(Double anotherDouble);返回值:int;功能释义:对两个 Double 对象所表示的数值进行比较。

Number

  • Number类:抽象类 Number 是 BigDecimal、BigInteger、Byte、Double、Float、Integer、Long 和 Short 类的父类。Number 的子类必须提供将表示的数值转换为 byte、double、float、int、long 和 short 的方法。Number类中的方法分别被Number的子类所实现,也就是说,在Number类的所有子类中都包含这些方法。

  • 常用方法

  1. 方法:byteValue();返回值:byte;功能释义:以 byte 形式返回指定的数值。

  2. 方法:intValue();返回值:abstract int;功能释义:以 int 形式返回指定的数值。

  3. 方法:floatValue();返回值:abstract float;功能释义:以 float 形式返回指定的数值。

  4. 方法:shortValue();返回值:short;功能释义:以 short 形式返回指定的数值。

  5. 方法:longValue();返回值:abstract long;功能释义:以 long 形式返回指定的数值。

  6. 方法:doubleValue();返回值:abstract double;功能释义:以 double 形式返回指定的数值。


下一章,(18)Java中的数字处理类

发布了67 篇原创文章 · 获赞 19 · 访问量 9892

猜你喜欢

转载自blog.csdn.net/qq_41530004/article/details/101772016