packagecom.java.demo;publicclassNewRectangle{privatedouble width,height;Point position=newPoint();publicNewRectangle(){}publicNewRectangle(double m,double n){
width = m;
height = n;
position.x=0.0;
position.y=0.0;}publicNewRectangle(double m,double n,double x,double y){
width = m;
height = n;
position.x=x;
position.y=y;}publicdoublegetArea(){return width*height;}publicdoublegetPerimeter(){return2*(width+height);}publicbooleanbPointIn(Point p,NewRectangleObject){if(p.x>=Object.position.x&&p.x<=Object.position.x+width&&p.y>=Object.position.y&&p.x<=Object.position.y+height){returntrue;}elsereturnfalse;}publicvoidis_include_or_overlap(NewRectangleObject1,NewRectangleObject2){if(Object1.getArea()>Object2.getArea()){Point p1=newPoint(Object2.position.x,Object2.position.y);Point p2=newPoint(Object2.position.x+width,Object2.position.y);Point p3=newPoint(Object2.position.x,Object2.position.y+height);Point p4=newPoint(Object2.position.x+width,Object2.position.y+height);if(bPointIn(p1,Object1)&&bPointIn(p2,Object1)&&bPointIn(p3,Object1)&&bPointIn(p4,Object1)){System.out.println("The first Rectangle"+" include the second Rectangle");}elseif(bPointIn(p1,Object1)||bPointIn(p2,Object1)||bPointIn(p3,Object1)||bPointIn(p4,Object1)){System.out.println("Overlapping");}else{System.out.println("They are both independent");}}else{Point p1=newPoint(Object1.position.x,Object1.position.y);Point p2=newPoint(Object1.position.x+width,Object1.position.y);Point p3=newPoint(Object1.position.x,Object1.position.y+height);Point p4=newPoint(Object1.position.x+width,Object1.position.y+height);if(bPointIn(p1,Object2)&&bPointIn(p2,Object2)&&bPointIn(p3,Object2)&&bPointIn(p4,Object2)){System.out.println("The second Rectangle include the first Rectangle");}elseif(bPointIn(p1,Object2)||bPointIn(p2,Object2)||bPointIn(p3,Object2)||bPointIn(p4,Object2)){System.out.println("Overlapping");}else{System.out.println("They are both independent");}}}publicstaticvoidmain(String[] args){NewRectangleM=newNewRectangle(10.3,11.27,10.0,10.0);NewRectangleN=newNewRectangle(10.3,11.27,100,100);System.out.println("Area="+M.getArea()+" Perimeter="+M.getPerimeter());Point point=newPoint(1,1);System.out.println(M.bPointIn(point,M));M.is_include_or_overlap(M,N);}}classPoint{double x,y;Point(){}Point(double x,double y){this.x=x;this.y=y;}publicdoubledistance(Point p){returnMath.sqrt(p.x*p.x+p.y*p.y);}}