关于android开发中涉及到的java知识:面向对象(四)

来源:互联网 发布:linux ftp添加用户 编辑:程序博客网 时间:2024/05/11 19:37
面向对象(四)
今天主要总结下面向对象中包装类的用法及toString方法的用法还有==和equal的区别。
1.包装类及其用法
基本数据类型          包装类
byte                  Byte
short                 Short
int                   Integer
long                  Long
char                  Character
float                 Float
double                Double
boolean               Boolean
总结下就是除int和char外,其他类型只需把开头字母大写即可变为包装类。
那么如何把类转化为包装类对象呢?
例:
int a = 1;
Interger a = new Interger(a);
但是要注意,不要把不是其基本类型的变量强制转换为其包装类对象,否则会引起java.lang.NumberFormatExceoption异常。
JDK1.5提供了自动装箱和自动拆箱功能。
例:
Interger a = 5;//直接把一个基本类型变量赋给Interger对象,属于自动装箱
int b = a;//直接把一个Interger对象赋给int类型变量,属于自动拆箱
那么包装类是否可以实现基本类型变量和字符串之间的转换呢?答案是肯定的。
a.利用parseXxx(String s)静态方法(除Character之外的所有包装类都提供该方法)。
b.利用包装类提供的Xxx(String s)构造器。
例:
String a = "1234567";
int b = Interger.parseInt(a);
或int c = new Interger(a);
此外,String类还提供了多个重载valueOf()方法,用于将基本类型变量转换为字符串。
例:
int a = 5;
String b = String.valueOf(a);
2.toString
toString方法是一个非常特殊的方法,它是一个自我描述的方法,该方法通常用于实现:当程序员直接打印该对象时,系统会输出该对象的自我描述信息,告诉外界该对象具有的状态。
Object类提供的toString方法总是返回对象实现类的“类名+@+hashCode”值,要想实现真正的自我描述功能,用户必须重写toString方法。
3.==与equals
如果两个变量是基本类型变量且都是数值类型,则只要两个变量的值相等就返回true,但对于两个引用类型变量,他们必须指向同一个对象时==才会返回true,而equal没有这个要求。
例:
String a1 = new String("hello");
String a2 = new String("hello");
System.out.println(a1==a2);//输出flase
System.out.println(a1.equals(a2));//输出true
注:new String("hello")一共产生了两个对象。
下面补充下常量池的概念:
常量池专门用于管理在编译期被确定并被保留在已编译的.class文件中的一些数据。它包括了关于类,方法,接口中的常量,还包括字符串常量。
当然,你可以重写equal方法,输出自己想要的结果。
0 0