问题描述
- java方法调用的问题 这个repaint()调的是哪个 为什么啊??
-
public class test {
public static void main(String[] args) {
new test().start();
}
public void start(){
new A().m();
}
class A{
public void m(){
repaint();
}
public void repaint(){
System.out.println("nihao");
}
}
public void repaint(){
System.out.println("hanzhi");
}
}
解决方案
java调用脚本的方法在resin中的问题
Java泛型静态方法调用问题
repaint()方法!
解决方案二:
调用A的repaint。
因为start调用的是A的m方法,而A里面有repaint,所以先调A自己的repaint
解决方案三:
public class test {
public static void main(String[] args) {
new test().start();
}
public void start(){
new A().m();
}
class A{
public void m(){
repaint();
}
}
public void repaint(){
System.out.println("hanzhi");
}
}
有几个问题 1. 这里的方法调用直接加 方法名可不可以理解成this.repaint()
2如果可以这样理解那么 A类的实例怎么调用了外部类的方法。。。
解决方案四:
public void m(){
repaint();//实际上前面是有this.
}
解决方案五:
public class test {
public static void main(String[] args) {
new test().start();
}
public void start(){
new A().m(); // new A()首先定义一个类A的对象,然后调用其中的方法m();
//如果你想调用类test的方法,就这样写this.start();this是指向本类的对象,用它才能调用自己的start();
}
解决方案六:
输出的是nihao因为他调用的是A自己的 repaint()方法
解决方案七:
这个跟继承的父类不一样的,你这个没有继承关系,当然是调用的自己的方法了。