Java编程,使用单例模式,新建Rectangle类对象,判断两个长方体是否重叠

碰到一个面试题,大致意思如标题,如果面试过了别忘了点赞关注。
这个问题给出两个长方形的坐标,问这两个长方形是否有重合部分。画出图来就是这样的:
在这里插入图片描述
主要逻辑有人解释过了,我直接上代码
https://blog.csdn.net/weixin_34195364/article/details/94221416

import java.util.Random;

public class Rectangle {
     int PLx=0;
     int PLy=0;
     int PRx=0;
     int PRy=0;
     void setvalues(){
          Random random = new Random();
          while (PLx>=PRx){
               PLx=random.nextInt(100);
               PRx=random.nextInt(100);
          }
          while (PRy>=PLy){
               PLy=(int)(Math.random()*100);
               PRy=(int)(Math.random()*100);
          }
     }
     void show(){
          System.out.print("PL:("+PLx+","+PLy+")");
          System.out.println("PR:("+PRx+","+PRy+")");
     }

     /**
      * 懒汉单例模式创建
      */
     private static volatile Rectangle instance=null;    //保证 instance 在所有线程中同步
     public static synchronized Rectangle getRectangle()
     {
          //getInstance 方法前加同步
          if(instance==null)
          {
               instance=new Rectangle();
          }
          return instance;
     }
}
public class Compare {

    public  Compare(Rectangle r1, Rectangle r2){
        if(r1.PRy<=r2.PLy&&r1.PLy>=r2.PRy&&r1.PRx>=r2.PLx&&r1.PLx<=r2.PRx){
            System.out.println("true");
        }
        else {
            System.out.println("false");
        }
    }
}
public class main {

    public static void main(String[] args) {
        Rectangle r2 = Rectangle.getRectangle();
        r2.setvalues();
        r2.show();
        Rectangle r1=new Rectangle();
        r1.setvalues();
        r1.show();
        new Compare(r1,r2);
    }
}

在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值