本人接触java语言快一个学期了,第一次从java语言中体会到了编程世界的奇妙,这兴奋程度不亚于解出数学题的feeling。但是过程中也是遇到了很多问题,在这里分享过程和求解疑惑,希望在这里从这一刻开始记录我学习的过程,朝着优秀前进。
下面就写一个关于输出数组的例子吧。
通常情况下我们输出数组会使用for循环,这对于八大基本类型来说没毛病,但是对象类型的数组for循环就不好使了。对于八大基本类型,当存入数组的时候,直接调用写好的Arrays类的toString(八大基本类型)方法,将数组转化为字符串。
这种会直接输出整个数组。
package self_learn;
import java.util.Arrays;
public class Test_circle {
public static void main(String[] args) {
String[] str = { "zhangsan", "zahosi", "wangwu" };
System.out.println(Arrays.toString(str));
System.out.println(Arrays.toString(str));
}
}
其实对于每一种类,都有已经定义好的toString()方法,直接使用想要输出对象来调用该方法(这里的toString()方法是不需要调用的,属于隐形的,看不见的)。
自定义类的数组既不能通过Arrays类,将其转化为字符串,也没有现成的toString()方法可以调用,这里需要重写(这里用词准确吗?)toString()方法
package self_learn;
import java.util.Arrays;
class Student{
int age;
String name;
public Student(int age,String name) {
this.age = age;
this.name = name;
}
public String toString() {
return "Student [ name="+name+" age ="+age+"]";
}
}
public class Test_circle {
int age;
String name;
public Student(int age,String name) {
this.age = age;
this.name = name;
}
public String toString() {
return "Student [ name="+name+" age ="+age+"]";
}
}
public class Test_circle {
public static void main(String[] args) {
Student stu1 = new Student(17,"zhangsan");
Student stu2 = new Student(18,"lisi");
Student stu3 = new Student(17,"zhaowu");
Student[] stu = {stu1,stu2,stu3};
System.out.println(stu[1]); //这个地方其实是调用了类内的toString()方法
}
Student stu1 = new Student(17,"zhangsan");
Student stu2 = new Student(18,"lisi");
Student stu3 = new Student(17,"zhaowu");
Student[] stu = {stu1,stu2,stu3};
System.out.println(stu[1]); //这个地方其实是调用了类内的toString()方法
}
}
使用for循环依次输出结果。