java的方法调用的问题

package tms.route;

public class TrafficLight {
    TrafficSignal signal;

    public TrafficLight(){

        TrafficSignal signal = TrafficSignal.RED;
    }

    public TrafficSignal getSignal(){
       return signal;
    }

    public void setSignal(TrafficSignal signal){

        this.signal = signal;
    }
}


为什么我在别的类中不能用类命打点getSignal()调用这个方法呀

通过类名.方法,属于静态方法调用,方法需要用static修饰;所以你需要修改一下,修改如下:

package tms.route;

public class TrafficLight {
    TrafficSignal signal;

    public TrafficLight(){

        TrafficSignal signal = TrafficSignal.RED;
    }

    public static TrafficSignal getSignal(){
       return new TrafficLight().signal;
    }

    public void setSignal(TrafficSignal signal){

        this.signal = signal;
    }
}