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

📄 stereovolume.java

📁 Hiberante程序高手秘籍的源代码
💻 JAVA
字号:
package com.oreilly.hh;import java.io.Serializable;/** * A simple structure encapsulating a stereo volume level. */public class StereoVolume implements Serializable {    /**     * The minimum legal volume level.     */    public static final short MINIMUM = 0;    /**     * The maximum legal volume level.     */    public static final short MAXIMUM = 100;    /**     * Stores the volume of the left channel.     */    private short left;    /**     * Stores the volume of the right channel.     */    private short right;    /**     * Default constructor sets full volume in both channels.     */    public StereoVolume() {        this(MAXIMUM, MAXIMUM);    }    /**     * Constructor that establishes specific volume levels.     *     * @param left the volume of the left channel.     * @param right the volume of the right channel.     * @throws IllegalArgumentException if a volume is out of range.     */    public StereoVolume(short left, short right) {        setLeft(left);        setRight(right);    }    /**     * Helper method to make sure a volume value is legal.     * @param volume the level that is being set.     * @throws IllegalArgumentException if it is out of range.     */    private void checkVolume(short volume) {        if (volume < MINIMUM) {            throw new IllegalArgumentException("volume cannot be less than " +                                               MINIMUM);        }        if (volume > MAXIMUM) {            throw new IllegalArgumentException("volume cannot be more than " +                                               MAXIMUM);        }    }    /**     * Set the volume of the left channel.     * @param volume level to which the left channel is being set.     * @throws IllegalArgumentException if it is out of range.     */    public void setLeft(short volume) {        checkVolume(volume);        left = volume;    }    /**     * Set the volume of the right channel.     *     * @param volume level to which the right channel is being set.     * @throws IllegalArgumentException if it is out of range.     */    public void setRight(short volume) {        checkVolume(volume);        right = volume;    }    /**     * Get the volume of the left channel     *     * @return the current volume level of the channel.     */    public short getLeft() {        return left;    }    /**     * Get the volume of the right channel.     *     * @return the current volume level of the channel.     */    public short getRight() {        return right;    }    /**     * Format a readable version of the volume levels, for debugging.     */    public String toString() {        return "Volume[left=" + left + ", right=" + right + ']';    }    /**     * Compare whether another object is equal to this one, following the     * contract established by {@link Object}.     *     * @param obj the object to be compared.     * @return true if obj is also a StereoVolume instance, and represents     *         the same volume levels.     */    public boolean equals(Object obj) {        if (obj instanceof StereoVolume) {            StereoVolume other = (StereoVolume)obj;            return other.getLeft() == getLeft() &&                other.getRight() == getRight();        }        return false;  // It wasn't a StereoVolume    }    /**     * Returns a hash code value for the StereoVolume. This method must be     * consistent with the {@link #equals} method.     */    public int hashCode() {        return (int)getLeft() * MAXIMUM * 10 + getRight();    }}       

⌨️ 快捷键说明

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