使用System输出了一个对象,然后默认调用了该类的toString方法,该方法返回值事String类型的,如果该方法中有使用输出语句,那么最终在控制台上输出的顺序问题。
总结:
输出的时候先遍历输出的内容,然后将有输出语句的方法输出的,然后各方法的返回值就跟输出语句中原本的字符按照他们位置的顺序进行输出 静态方法和非静态方法相同,没有任何差别
package StringText;
public class ToStringTest {
public static void main(String[] args) {
System.out.println("love "+new myClass()+" jjjj "
+new myClass().toString1()+" "+" "+myClass.toString3()+new myClass().toString2());
输出结果:方法1 静态方法 方法2 I love java jjjj 方法1返回值 static返回值 方法2返回值
根据输出结果可知,先遍历输出的内容,然后将有输出语句的方法输出的,然后各方法的返回值就跟输出语句中原本的字符按照他们位置的顺序进行输出
静态方法和非静态方法相同,没有任何差别
System.out.println("me "+new myClass().i);//me 2
valueOf()将该类的toString()(默认是toString,也可以是其他有返回值的方法)方法中输出和返回的字符串()如果不是字符串那就变为字符串组合起来返回
String str=String.valueOf(new myClass());
System.out.println(str);I java
System.out.println(String.valueOf(new myClass()));I java
String str1=String.valueOf(new myClass().toString1());
System.out.println(str1);方法1 方法1返回值
String str2=String.valueOf(new myClass().toString2());
System.out.println(str2);方法2 方法2返回值
}
}
class myClass{
int i=2;
public String toString(){
System.out.print("I ");
return "java";
}
public String toString1(){
System.out.print("方法1 ");
return "方法1返回值 ";
}
public String toString2(){
System.out.print("方法2 ");
return "方法2返回值 ";
}
static String toString3(){
System.out.print("静态方法 ");
return "static返回值 ";
}
}