System.out.println() 方法可以传入的参数类型有:
1 String类型
String类型先做非空判断,再调用语句输出
public void print(String s) {
if (s == null) {
s = "null";
}
write(s);
}
2 基本数据类型 int(byte,short自动转型为int),long,float,double, char,boolean
该方法底层会调用 String.valueOf(xxx i)将以上数据类型转换为字符串输出,xxx代表以上的数据类型
//以下是java中对int和double转换
public void print(int i) {
write(String.valueOf(i));
}
public void print(double d) {
write(String.valueOf(d));
}
3 数组类型
在使用println() 输出之前,首先需要调用String类构造方法将字符数组转换为字符串
char[] chs = {'a','b','c','d'};
System.out.println(new String(chs));
4 对象
对象作为参数传入时,如需打印对象具体信息,首先要重写对象创建类的toString()方法,否则只能输出对象的地址
//学生类 重写了equals方法
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
//主方法
public static void main(String[] args) {
Student s = new Student("zhangsan",23);
System.out.println(s);
}
//控制台结果
Student{name='zhangsan', age=23}
5集合
集合继承 AbstractCollection 类 该类重写toString()方法,因此可将集合对象作为参数传入
public static void main(String[] args) {
List list = new ArrayList();
list.add("python");
list.add("c++");
list.add("java");
list.add("c#");
System.out.println(list);
}