一.为什么要重写toString()方法
1.toString()方法是Object类里的方法,所有类都继承自Object,因此所有类都拥有toString()方法。
2.public String toString()
返回该对象的字符串表示,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。(类似于对象的说明书)
二.Scanner方法复习(java输入方法之一)
Scanner
import java.util.Scanner;
public class TestDemo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();//这里表示从键盘输入一个整数
String a = scanner.next();//这里表示从键盘输入一个字符串
String a = scanner.nextLine(); //注意:若一次性读取多个字符串,即字符串中间有空格,要用nextLine
System.out.println(a);
}
}
DataInputStream输入方法之二
public static void main(String[] args) {
DataInputStream din = new DataInputStream(System.in);
double x=0,y=0;
try {
System.out.println("输入x的值");
x= Double.parseDouble(din.readLine());
System.out.println("输入y的值");
x= Double.parseDouble(din.readLine());
System.out.println("x的值:"+x+","+"y的值:"+y);
} catch (NumberFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
三.super和this的区别
super和this的区别:this可以看做一个引用变量,保存了该对象的地址,是当前对象的整体,而suoer代表的是父类的特征,是子类局部的一些东西,这些东西继承过来已经在子类里面了,你可以输出整体this,但不能输出父类型特征super,因为super指向的东西不是一个整体,没法打印出来。
sout(this);//输出this.toString()的值
sout(super);//编译报错,需要输入super.
在子类对象中,子类想访问父类的属性方法等时,可以用“super.”访问。例如子类重写run()但是还想用父类的run(),此时用“super.”。还有当子类出现和父类一样的属性或者方法,此时,想调用父类的那个属性或者方法,此时“super.”不能省略。
this代表当前对象本身,super代表当前对象的父类型特征。
共同点:他两都只能在对象内部使用。
总结:“this.”是一个实例对象内部为了区分实例变量和局部变量。
而“super.”是一个实例对象为了区分是子类的成员还是父类的成员。
父类有,子类也有,子类想访问父类的,“super.”不能省略。