日期:2014-05-20  浏览次数:20587 次

请教一个java的基础问题
正常情况下   Rectangle m1 intersection(Rectangle m2);如果相交应该返回true;否则false;

可是如果加一个if(Rectangle m1 intersection(Rectangle m2))是不是就是m1一定要相交于m2才执行if里面语句;那这样的话if是不是就是相当于只有if里面的语句返回true的时候才执行if里面的语句;


例如下面的   if(m.isLive()){pppp;}         public boolean isLive(){return live;}
是不是就是相当于isLive()这句话是true的时候才会执行pppp;可是从中文的理解有点不通,我是这样理解的,假如m是否活着,按理说是否活着都应该执行if语句的,你又没给提示他是不是活着,请教高手
 
------解决方案--------------------
引用:
正常情况下   Rectangle m1 intersection(Rectangle m2);如果相交应该返回true;否则false;

可是如果加一个if(Rectangle m1 intersection(Rectangle m2))是不是就是m1一定要相交于m2才执行if里面语句;那这样的话if是不是就是相当于只有if里面的语句返回true的时候才执行if里面的语句;


例如下面的   if(m.isLive()){pppp;}         public boolean isLive(){return live;}
是不是就是相当于isLive()这句话是true的时候才会执行pppp;可是从中文的理解有点不通,我是这样理解的,假如m是否活着,按理说是否活着都应该执行if语句的,你又没给提示他是不是活着,请教高手
 


首先第一点你说的是对的:只有if里面的语句返回true的时候才执行if里面的语句;

其次第二点,首先if是个条件判断语句,而条件只有true或false两种值,既然第一点正确,那就毫无疑问只有为true时才会执行;其次关于 m是否活着,先理解这个"活着",也就是说 "活着" 是个实例字段,且是个boolean类型,也就是说当m被创建后,这个"活着"就有意义了,要么就是true,要么就是false,方法isLive()仅仅是得到m这个实例的状态,当执行if(m.isLive())时,也就只会返回一个确定的值,这样就能明确的知道是否要执行if里面的语句,而不是你说的“没给提示他是不是活着”;

最后是多学习下Java的语法,对于语法,没什么说的,它就是规则,就是要这么用;
若坚持就是不这么用,就是认为Java错了,我的理解才是正确的,其实也是没关系的,可以自己写个Java编译器和JVM,如果觉得有点困难,就先这么用着吧。