toString方法的详解:
1.toString可以用作返回一个Number对象值的字符串.
- 如果是参数是原生数据类型,返回的是原生数据类型的String类型
- 如果方法有两个参数,返回以第二个参数为基数有第一个参数来表示的String类型.
Integer c = 1;
System.out.println(Integer.toString(12));
System.out.println(c.toString());
2.toString还可以用作数组的表示.
import java.util.Arrays;
public class ToStringDemo {
public static void main(String[] args) {
//子类可以重写toString
//可以用作数组的表示
int[] arr={1,2,5,7,8,9,6,5,4};
System.out.println(Arrays.toString(arr));
3.toString可以进行重写供子类更好的使用
public class ToStringDemo {
String name;
int old;
public ToStringDemo(String name,int old){
this.name=name;
this.old=old;
}
/*
* Object是所有类的首领
* 当输出一个对象时,会默认调用类中toString()方法,把对象以字符串形式输出
* 类中没有toString(),那么会调用父类(object)中的toString();
* public Stirng toString(){
* Object类中的默认输出类的名字和对象在内存中的地址(10进制转为16进制)
* }
* 需要重写
* * */
@Override
public String toString() {
return "ToStringDemo{" +
"name='" + name + '\'' +
", old=" + old +
'}';
}
public static void main(String[] args) {
ToStringDemo toStringDemo=new ToStringDemo("张三",20);
System.out.println(toStringDemo);
}
}
- toString 本身就在Object类中存在,如果不重写的话会自动返回对象的哈斯特码值,在打印对象的时候,会自动调用toSrtring方法.在重写方法后可以实现在此类中的作用.
equal方法的详解
- equals方法如果不在其他类中重写的话,父类中的equals比较的就是对象中的地址,起不到类似于比较字符串是否相等的作用.
public class ArraysEquals
- List item
Demo {
public static void main(String[] args) {
int[] a={1,2,3};
int[] b={1,2,3};
System.out.println(a==b);
System.out.println(a.equals(b));
- 其中==在于比较对象时候也是比较的对象的地址.
- 这时候的equals没有重写,还是父类Objects中的equals方法,所以还是比较两个对象之间的对象地址.
- 但是当equals在类中被重写的时候:
public class ArraysEqualsDemo {
public static void main(String[] args) {
int[] a={1,2,3};
int[] b={1,2,3};
System.out.println(Arrays.equals(a,b));
}
}
此时equals就是比较的是对象中的属性.