javaSE——面向对象(二)

一、包装类

    作用主要有以下两方面:

  1. 编码过程中只接收对象的情况,比如List中只能存入对象,不能存入基本数据类型;比如一个方法的参数是Object时,不能传入基本数据类型,但可以传入对应的包装类

  2. 方便类型之间的转换,比如String和int之间的转换可以通过int的包装类Integer来实现

    八大基本数据类型和包装类对应表

基本数据类型

包装类

byte

Byte

boolean

Boolean

short

Short

char

Character

int

Integer

long

Long

float

Float

double

Double

1、Integer

Integer构造方法如下:

方法

返回值

功能

byteValue()

byte

以byte类型返回该Integer的值

compareTo()

int

在数字上比较两个Integer对象。如果这两个值相等,则返回0;如果调用对象的数值小于anotherInteger的数值,则返回负值,如果调用对象的数值大于anotherInteger的数值,则返回正值

equals(Object IntegerObj)

boolean

比较此对象与指定的对象是否相等

intValue()

int

以int型返回此Integer对象

shortValue()

short

以short型返回此Integer对象

toString()

String

返回一个表示该Integer值的String对象

valueOf(String str)

Integer

返回保存指定的String值的Integer对象

parseInt

int

返回包含在由str指定的字符串中的数字的等价整数值

构造方法一,该方法以一个int型变量作为参数来获取Integer对象

Integer number = new Integer(7)

构造方法二,该方法以一个String型变量作为参数来获取Integer对象

Integer number = new Integer("45")

Integer 类型和基本数据类型之间的转换

public static void main(String[] args) {
        int a0 = 1;
        Integer a1 = new Integer(a0);
        double a2 = a1.doubleValue();
        float a3 = a1.floatValue();
        int a4 = a1.intValue();
        System.out.println("Integer包装类:"+a1);
        System.out.println("double类型:"+a2);
        System.out.println("float类型:"+a3);
        System.out.println("int类型:"+a4);
    }

toString方法进行进制转换

public static void main(String[] args) {
        String a1 = Integer.toBinaryString(123456789);
        //获得该数的二进制表示
        String a2 = Integer.toOctalString(123456789);
        //获得该数的八进制表示
        String a3 = Integer.toString(123456789);
        //获得该数的十进制表示
        String a4 = Integer.toHexString(123456789);
            //获得该数的十六进制表示
        System.out.println("“123456789”的二进制表示为:"+a1);
        System.out.println("“123456789”的八进制表示为:"+a2);
        System.out.println("“123456789”的十进制表示为:"+a3);
        System.out.println("“123456789”的十六进制表示为:"+a4);
    }

2、Boolean

构造方法一:Boolean(boolean value),该方法创建一个表示value参数的Boolean对象

Boolean b = new Boolean(true)

构造方法二:Boolean(String str),该方法以String变量作为参数创建Boolean对象,如果String参数不为null且在忽略大小写时等于true,则分配一个表示true值的Boolean对象,否则获得一个false值的对象

Boolean bool = new Boolean("ok")

常用方法

方法

返回值

功能

booleanValue()

boolean

将Boolean对象的值以及对应的boolean值返回

equals(Object obj)

boolean

判断调用该方法的对象与obj是否相等。当且仅当参数不是null时,而且与调用该方法的对象一样都表示同一个boolean的值的Boolean对象时,才返回true

parseBoolean(String s)

boolean

将字符串参数解析为boolean值

toString()

String

返回表示该boolean值的String对象

valueOf(String s)

boolean

返回一个用指定的字符串表示值的boolean值

常量: 

  1. TRUE:对应基值true的Boolean对象

  2. FALSE:对应基值false的Boolean对象

  3. TYPE:基本类型boolean的Class对象   

代码:

public static void main(String[] args) {
        //创建Boolean对象
        Boolean b1 = new Boolean(true);
        Boolean b2 = new Boolean("ok");
        //调用booleanValue()方法将创建的对象重新转换为boolean数据输出
        System.out.println("b1:"+b1.booleanValue());
        System.out.println("b2:"+b2.booleanValue());
    }

3、Byte

    构造方法一:Byte(byte value),通过这种方法创建的Byte对象,可表示指定的byte值

byte mybyte = 45; 
Byte b = new Byte(mybyte);

    构造方法二:Byte(String str),通过这种方法创建的Byte对象,可表示String参数所指示的byte值

    常用方法

方法

返回值

功能

byteValue()

byte

以一个byte值返回Byte对象

compareTo(Byte anotherByte)

int

判在数字上比较两个Byte对象

doubleValue()

double

以一个double值返回此Byte的值

intValue()

int

以一个int值返回此byte的值

parseByte(String s)

byte

将String型参数解析成等价的字节(byte)形式

toString()

String

返回表示此Byte的值的String对象

valueOf(String str)

byte

返回一个保持指定String所给出的值的Byte对象

equals(Object obj)

boolean

将此对象与指定对象比较,如果调用该方法的对象与obj相等,则返回true,佛祖额返回false

常量

  1. MIN_VALUE:byte类型可取的最小值

  2. MAX_VALUE:byte类型可取的最大值

  3. SIZE:用于以二进制补码形式表示byte值的位数

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

4、Character

    构造方法一

Character(char value)

    该类的构造函数必须是一个char类型的数据,通过该构造函数创建的Character类对象包含由char类型参数提供的值。一旦Character类被创建,它包含的数值就不能改变了。

    常用方法

方法

返回值

功能

charvalue()

char

返回此Character对象的值

compareTo(Character anotherByte)

int

根据数字比较两个Character对象,若这两个对象相等则返回0

equals(Object obj)

Boolean

将调用该方法的对象与指定的对象相比较

toUpperCase(char ch)

char

将字符参数转为大写

toLowerCase(char ch)

char

将字符参数转为小写

toString()

String

返回表一个表示指定char值的String对象

charValue()

char

返回此Character对象的值

isUpperCase(char ch)

boolean

判断指定字符是否为大写字符

isLowerCase(char ch)

boolean

判断指定字符是否为小写字符

    常量

  1. CONNECTOR_PUNCTUATION:返回byte型值,表示Unicode规范中的常规类别“Pc”

  2. UNASSIGNED:返回byte型值,表示Unicode规范中的常规类别“Cn”

  3. TIYLECASE_LETTER:返回byte型值,表示Unicode规范中的常规类别“Lt”

代码:

public static void main(String[] args) {
        //创建Character对象
        Character c1 = new Character('A');
        Character c2 = new Character('a');
        //判断字符的大小写状态
        System.out.println("c1是大写字母吗: "+Character.isUpperCase(c1));
        System.out.println("c2是小写字母吗: "+Character.isLowerCase(c2));
    }

5、Double

    构造方法一:Double(double value):基于double参数创建Double对象

    构造方法二:Double(String str):构造一个新分配的Double对象,表示用字符串表示的double类型的浮点值

常用方法

方法

返回值

功能

byteValue()

byte

以byte形式返回Double对象值(通过强制转换)

compareTo(Double d)

int

对两个Double对象进行数值比较,如果两个值相等,则返回0;如果调用对象的数值小于d的数值,则返回负值;如果调用对象的数值大于d的值,则返回正值

equals(Object obj)

boolean

将此对象与指定的对象相比较

intValue()

int

以int形式返回double值

isNaN()

boolean

如果此double值是非数字(NaN)值,则返回true;否则返回false

toString()

String

返回此Double对象的字符串表示形式

valueOf(String str)

Double

返回保存用参数字符串str表示的double值的Double对象

doubleValue()

double

以double形式返回此Double对象

longValue()

long

以long形式返回此double的值(通过强制转换为long类型)

常量

  1. MAX_EXPONENT:返回int值,表示有限double变量可能具有的最大指数

  2. MIN_EXPONENT:返回int值,表示标准化double变量可能具有的最小指数

  3. NEGATIVE_INFINITY:返回double值,表示保存double类型的负无穷大值的常量

  4. POSITIVE_INFINITY:返回double值,表示保存double类型的正无穷大值的常量

二、处理对象

1、toString()方法

    toString()方法是 Object 类里的一个实例方法,所有的 Java 类都是 Object 类的子类,因此所有的 Java对象都具有 toString()方法。不仅如此,所有的 Java 对象都可以和字符串进行连接运算,当Java 对象和字符串进行连接运算时,系统自动调用 Java 对象 toString0方法的返回值和字符串进行连接运算,即下面两行代码的结果也完全相同。

string pStr = p +"";

string pstr= P.tostring()+"";

    toString()方法是一个非常特殊的方法,它是一个“自我描述”方法,该方法通常用于实现这样一个功能:当程序员直接打印该对象时,系统将会输出该对象的“自我描述”信息,用以告诉外界该对象具有的状态信息。

    Object 类提供的 toString()方法总是返回该对象实现类的“类名十@+hashCode”值,这个返回值并不能真正实现“自我描述”的功能,因此如果用户需要自定义类能实现“自我描述”的功能,就必须重写 Object 类的 toStringO方法。例如下面程序。

class Apple{
    private String color;
    private double weight;
    public Apple(String color,double weight){
        this.color = color;
        this.weight = weight;
    }
    public String toString(){
        return "Apple[color ="+color+",weight ="+weight+"]";
    }
}
public class ToStringTest {
    public static void main(String[] args) {
        Apple a = new Apple("红色",5.68);
        System.out.println(a);
    }
}

输出:

Apple[color =红色,weight =5.68]

2、==和 equals 方法

    Java 程序中测试两个变量是否相等有两种方式:一种是利用=-运算符,另一种是利用 equals()方法。当使用——来判断两个变量是否相等时,如果两个变量是基本类型变量,且都是数值类型(不一定要求数据类型严格相同),则只要两个变量的值相等,就将返回 true。

    但对于两个引用类型变量,只有它们指向同一个对象时,一判断才会返回 true。—不可用于比较类型上没有父子关系的两个对象。下面程序示范了使用—来判断两种类型变量是否相等的结果。

public class equals {
    public static void main(String[] args) {
        int it = 65;
        float fl = 65.0f;
        System.out.println("65和65.0f是否相等?"+(it==fl));   //将输出true
        char ch ='A';
        System.out.println("65和'A'是否相等?"+(it==ch));     //将输出true
        String str1 = new String("hello");
        String str2 = new String("hello");
        System.out.println("str1和str2是否相等?"+(str1==str2));      //将输出false
        System.out.println("str1是否equals str2?"+(str1.equals(str2)));   //将输出true
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DF10F-0001A

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值