java之 ------ 类的封装、继承和多态(四)
来源:互联网 发布:大数据开发语言 编辑:程序博客网 时间:2024/06/05 23:05
问题:
声明颜色类Color。一种颜色由(红、绿、蓝)三元色值组成,称为RGB值。一个int整数可表示一种颜色,结构为:最高字节全1,其后3字节分别存储“红、绿、蓝”单色值,单色值范围是0~255。例如,0xff00ff00表示绿色,RGB值为(0,255,0)。
声明Color颜色类
RGB颜色值说明见教材实验3,RGB整数结构如图3.4所示,常用颜色及其RGB值如表3-1所示。
图1.1 颜色RGB整数结构图
表1-1 颜色及其RGB值
颜色
RGB值
RGB值的十六进制
java.awt.Color常量
红
(255,0,0)
0xffff0000
Color.red
绿
(0,255,0)
0xff00ff00
Color.green
蓝
(0,0,255)
0xff0000ff
Color.blue
黑
(0,0,0)
0xff000000
Color.black
白
(255,255,255)
0xffffffff
Color.white
Color颜色类主要成员声明如下,再声明表示红、绿、蓝、黑、白等颜色的常量。
public class Color { //颜色类 private int value; //颜色值 public Color(int red, int green, int blue) //以三元色构造颜色对象 public Color(int rgb) //以三元色构造颜色对象 public int getRGB() //返回颜色对象的RGB值 public int getRed() //返回颜色对象的红色值 public int getGreen() //返回颜色对象的绿色值 public int getBlue() //返回颜色对象的蓝色值 public String toString() //返回颜色对象的字符串描述}
代码实现:
import java.util.*;public class Color{private int value;int red,green,blue;public Color(int red,int green,int blue){this.set(red,green,blue);this.value=blue+(green<<8)+(red<<16)+(255<<24);}public Color(int rgb){this.value=rgb;this.set(rgb);}public void set(int rgb){this.blue=this.value&255;this.green=(this.value&(255<<8))>>8;this.red=(this.value&(255<<16))>>16;}public void set(int red,int green,int blue){this.red=red;this.green=green;this.blue=blue;}public String getRGB(){return Integer.toHexString(this.value);}public int getRed(){return this.red;}public int getGreen(){return this.green;}public int getBlue(){return this.blue;}public String toString(){return "( red , green , blue ) === ( "+this.red+" , "+this.green+" , "+this.blue+" )";}}class Main{public static void main(String[] args){final int MIN=-16777216;Scanner sc=new Scanner(System.in);int a=(255<<24)+(255<<16)+(255<<8)+255;//System.out.println("Please input n ( "+a+"<=a<="+(255<<24)+")");System.out.println("Please input red ,green and blue`s single color value");System.out.println("( 0<=value <=255 ) :");while(sc.hasNext()){Color c=new Color(sc.nextInt(),sc.nextInt(),sc.nextInt());System.out.println(c);System.out.println("RGB = 0x"+c.getRGB());System.out.println("Red = "+c.getRed());System.out.println("Green = "+c.getGreen());System.out.println("Blue = "+c.getBlue());System.out.println("-----------------");System.out.println("Please input n ( "+MIN+" <= n <= -1) : ");c=new Color(sc.nextInt());System.out.println(c);System.out.println("RGB = 0x"+c.getRGB());System.out.println("Red = "+c.getRed());System.out.println("Green "+c.getGreen());System.out.println("Blue = "+c.getBlue());System.out.println();System.out.println("Please input red ,green and blue`s single color value :");}}}
0 0
- java之 ------ 类的封装、继承和多态(四)
- (Java)类的封装、继承和多态
- java之 ------ 类的封装、继承和多态(一)
- java之 ------ 类的封装、继承和多态(二)
- java之 ------ 类的封装、继承和多态(三)
- Java类的封装、多态和继承
- java笔记第七章之封装,继承和多态
- 七:Java之封装、抽象、多态和继承
- java复习系列之封装、继承和多态
- 类的封装、继承和多态
- Java学习系列(四)Java面向对象之修饰符、封装、继承、多态详解
- Java学习系列(四)Java面向对象之修饰符、封装、继承、多态详解
- 菜鸟的学习之路(3) —java 面向对象程序设计的封装、继承和多态
- Java学习笔记(四)之―认识类、对象、封装、继承、多态、打包器
- Java的特性—封装、继承和多态
- Java封装,继承和多态的思考
- java的重写、重载以及继承、多态和封装
- java 封装、继承和多态
- Factorization Machines
- RailsCasts中文版,#20 Restricting Access 为页面增加权限校验2
- 矩阵快速幂 poj 3070
- Android开发《二》短信发送
- wince7下SD host驱动学习笔记
- java之 ------ 类的封装、继承和多态(四)
- RailsCasts中文版,#16 Virtual Attributes 虚拟属性
- 系统入门(12):Android之system_server与zygote之作用
- Java多线程与并发应用-(10)-java阻塞队列实现ArrayBlockingQueue
- Hdoj 1053 Entropy 【STL】
- 调侃《Head First设计模式》之外观模式
- JavaWeb之tomcat安装、配置与使用
- HDU 1599 find the mincost route 无向图最小环
- 新的作息时间表