⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rect.java

📁 These are the examples from the book Java Examples in a Nutshell, 2nd Edition, by David Flanagan.
💻 JAVA
字号:
/* * Copyright (c) 2000 David Flanagan.  All rights reserved. * This code is from the book Java Examples in a Nutshell, 2nd Edition. * It is provided AS-IS, WITHOUT ANY WARRANTY either expressed or implied. * You may study, use, and modify it for any non-commercial purpose. * You may distribute it non-commercially as long as you retain this notice. * For a commercial use license, or to purchase the book (recommended), * visit http://www.davidflanagan.com/javaexamples2. */package com.davidflanagan.examples.classes;/** * This class represents a rectangle.  Its fields represent the coordinates * of the corners of the rectangle.  Its methods define operations that can * be performed on Rect objects. **/public class Rect {    // These are the data fields of the class    public int x1, y1, x2, y2;    /**     * The is the main constructor for the class.  It simply uses its arguments     * to initialize each of the fields of the new object.  Note that it has     * the same name as the class, and that it has no return value declared in     * its signature.     **/    public Rect(int x1, int y1, int x2, int y2) {        this.x1 = x1;        this.y1 = y1;        this.x2 = x2;        this.y2 = y2;    }    /**     * This is another constructor.  It defines itself in terms of the above     **/    public Rect(int width, int height) { this(0, 0, width, height); }        /** This is yet another constructor. */    public Rect() { this(0, 0, 0, 0); }    /** Move the rectangle by the specified amounts */    public void move(int deltax, int deltay) {        x1 += deltax; x2 += deltax;        y1 += deltay; y2 += deltay;    }    /** Test whether the specified point is inside the rectangle */    public boolean isInside(int x, int y) {        return ((x >= x1)&& (x <= x2)&& (y >= y1)&& (y <= y2));    }    /**      * Return the union of this rectangle with another.  I.e. return the      * smallest rectangle that includes them both.     **/    public Rect union(Rect r) {        return new Rect((this.x1 < r.x1) ? this.x1 : r.x1,			(this.y1 < r.y1) ? this.y1 : r.y1,			(this.x2 > r.x2) ? this.x2 : r.x2,			(this.y2 > r.y2) ? this.y2 : r.y2);    }        /**      * Return the intersection of this rectangle with another.      * I.e. return their overlap.     **/    public Rect intersection(Rect r) {        Rect result =  new Rect((this.x1 > r.x1) ? this.x1 : r.x1,				(this.y1 > r.y1) ? this.y1 : r.y1,				(this.x2 < r.x2) ? this.x2 : r.x2,				(this.y2 < r.y2) ? this.y2 : r.y2);        if (result.x1 > result.x2) { result.x1 = result.x2 = 0; }        if (result.y1 > result.y2) { result.y1 = result.y2 = 0; }        return result;    }    /**      * This is a method of our superclass, Object.  We override it so that      * Rect objects can be meaningfully converted to strings, can be       * concatenated to strings with the + operator, and can be passed to       * methods like System.out.println()      **/    public String toString() {        return "[" + x1 + "," + y1 + "; " + x2 + "," + y2 + "]";    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -