static int i = 3;
public static void main(String args[]){
System.out.println("love " + new ToStringTest());//love java
ToStringTest a = new ToStringTest();
a.i++;
System.out.println("me " + a.i);//me 2
}
public String toString(){
System.out.print("I ");//I
return "java ";
}
结果:
I love java
me 4
因为Java中的字符串连接运算符+
会自动调用对象的toString()方法。
在你提供的代码中,"love "是一个字符串,而new ToStringTest()
创建了一个ToStringTest类的实例。当你把它们使用+
连接起来时,Java会自动将ToStringTest类的实例转换为字符串。具体来说,Java会自动调用该实例的toString()方法,并将其返回的字符串与"love "字符串拼接起来,形成最终的字符串"love java"。
因此,System.out.println("love " + new ToStringTest());语句输出"love java",其中"love "是一个字符串,而"java"是ToStringTest类的实例通过toString()方法返回的字符串。
2
接口中的方法默认是公共的抽象方法,可以使用public、protected或默认(package-private)修饰符,但不能使用private修饰符。
在接口中,可以定义抽象方法、默认方法和静态方法。
A. double getArea(); - 定义了一个抽象方法,可以出现在接口中。
B. public double getPerimeter() {...} - 定义了一个公共的非抽象方法,可以出现在接口中。
D. public default double setLineColor(double rgb) {...} - 定义了一个默认方法,可以出现在接口中。
3
接口中的抽象方法默认都是公共的(public),因此在类实现这些方法时,必须显式地使用 public
访问修饰符。
public interface MyInterface {
void myMethod();
}
public class MyClass implements MyInterface {
public void myMethod() {
// 实现方法的具体逻辑
}
}