每周总结8
1.toString方法
Object是所有类的父类,称为超类。(父类,超类,基类。子类,派生类)
也就是说其中的所有方法都是任何类可以拿来用的。
当然也可以对其进行重写。
package com.XGX.Test;
public class Test {
static class Animal {
int Data;
public Animal() {
}
}//用静态static修饰直接万事大吉了。
/*
Animal a = new Animal();
System.out.println(a);
*///这里直接用直接报错了,应该是没有写在main方法里面。这个类里面不能直接调用(非静态?)方法是吧;
public static void main(String[] args){
Animal a = new Animal();
System.out.println(a);
//沉下心来敲,做实事。
}
}
/*
运行结果如下:
com.XGX.Test.Test$Animal@1b6d3586
//over
也就是说,这里对toString()方法进行了重写。
而System 类的 实例化对象out 调用了println()方法来输出a;
本来是输出文件所在的位置和大概是一个物理地址。
package com.XGX.Test;
public class Test {
static class Animal {
int Data;
public String toString(){
//return "this.Data is" + this,Data;//直接这样子不行。
String a = "this.Data is ";
int b = this.Data;
String c = a + b;//使用字符串组合,字符串和其他数据类型相加就是直接连接组合成为新的字符串。
return c;
}
public Animal() {
}
public Animal(int Data) {
this.Data = Data;
}
}//用静态static修饰直接万事大吉了。
/*
Animal a = new Animal();
System.out.println(a);
*///这里直接用直接报错了,应该是没有写在main方法里面。这个类里面不能直接调用(非静态?)方法是吧;
public static void main(String[] args){
Animal a = new Animal(520);
System.out.println(a);
//沉下心来敲,做实事。
}
}
/*
运行结果如下:
this.Data is 520
//over
也就是说,这里对toString()方法进行了重写。
而System 类的 实例化对象out(是一个静态成员,果然,不用new实例化也可以直接调用明显是println()方法不是static的(静态方法直接用类名来调用了),但是out 是static 的,所以不用实例化,直接调用了println()方法来输出a;
然后重写toString()方法就结果不一样了,说明println()中调用了toString().
影响了输出结果,大概是toString()返回什么,println()就把他打印出来,显示在屏幕上。
本来是输出文件所在的位置和大概是一个物理地址。
重写之后让toString返回特定内容(由此可以看出toString()返回值是String类型)
println()就会打印该内容。
println()作用是向控制台输出信息。