A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 沈艳南 中级黑马   /  2013-5-16 19:06  /  1073 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 沈艳南 于 2013-5-20 00:50 编辑

public class Test2 {
        public static void main(String[] args) {
               
                Shap  s[] = new Shap[3];
                s[0] =new Rect(8,0);
                s[1] =new Rect(5.0,6.0);
                s[2] =new Rect(new Rect(12.0,4.0));
                for(int i=0;i<s.length;i++){
                        System.out.println("s["+i+"]area="+s.area());
                }
        }
        
               
               
        }
        

abstract class Shap{
        private double w,h;
        Shap(double i){
                w=h=i;
        }
        Shap(double i,double j){
                w = i;
                h = j;
        }
        Shap(Shap s){
                w = s.w;
                h = s.h;
        }
        double getw(){
                return h;
        }
        double geth(){
                return w;
        }
        abstract double area();
        
}
class Rect extends Shap{
        Rect(double i){
                super(i);
        }
        Rect(double i,double j){
                super(i,j);
        }
        Rect(Rect r){
                super(r);
        }
        double area(){
                return getw()*geth();
        }
}谁能告诉我为什么s[2]输出的是48?  

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

3 个回复

倒序浏览
本帖最后由 long 于 2013-5-16 21:05 编辑

public class Test2 {
        public static void main(String[] args) {
                Shap  s[] = new Shap[3];
                s[0] =new Rect(8,0);
                s[1] =new Rect(5.0,6.0);
                s[2] =new Rect(new Rect(12.0,4.0)); /**该行语句可替换成 Rect r = new Rect(12.0, 4.0); s[2] = new Rect(r); s[2]其实是r的副本,尽管它们是两个不同的对象,但它们的字段值是相同的。楼主应该明白r.w = 12.0,  r.h = 4.0,  因此s[2].w = 12.0, s[2].h = 4.0。s[2].area() = s[2].w * s[2].h = 12.0 * 4.0 = 48。所以s[2]输出的是48. */

                for(int i=0;i<s.length;i++)
                        System.out.println("s["+i+"]area="+s.area());
          }
}

评分

参与人数 1技术分 +1 收起 理由
殇_心。 + 1

查看全部评分

回复 使用道具 举报
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!
回复 使用道具 举报
楼主可以结贴了。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马