枚举 定义其他结构

枚举是多例设计

要求构造方法私有化

枚举中定义的构造方法不能用public

枚举对象必须放在首行,随后才可以定义属性,构造方法,普通方法

package cn;
enum Color{        //定义好了枚举类
    RED("红色") ,GREEN ("绿色"),BLUE("蓝色") ;        //枚举对象dingyi8在最上面
    private String title ;    //属性
    private Color(String title){        //  私有
        this.title = title ;
    }
    public String toString (){
        return this.title ;
    }
}
public class Test {

    public static void main(String[] args) {
        for(Color c : Color.values()){
            System.out.println(c.ordinal()  + " "  + c) ;
        }
    }
}

枚举实现接口

interface Message {
    public String getTitle() ;
}
enum Color implements Message{        //定义好了枚举类
    RED("红色") ,GREEN ("绿色"),BLUE("蓝色") ;        //枚举对象dingyi8在最上面
    private String title ;    //属性
    private Color(String title){        //  私有
        this.title = title ;
    }
    public String getTitle(){
        return this.title  ;
    }
}
public class Test {

    public static void main(String[] args) {
        Message msg = Color.RED ;
        System.out.println(msg.getTitle());
    }
}

在每一个对象后面使用匿名内部类的形势实现方法

不写了。。

实际作用:

1.switch中

enum Color{
    RED , GREEN , BLUE ;
}
public class Test {

    public static void main(String[] args) {
        Color c = Color.RED ;
        switch(c){
        case RED:
            System.out.println("This is RED") ;
            break ;
        case GREEN:
            System.out.println("This is Green");
            break;
        case BLUE:
            System.out.println("This is BLUE");
            break;
        }
    }
}

试图使用emnu

枚举属于多例的设计模式,想用就用,不想用就不用。

时间: 2024-09-30 18:33:15

枚举 定义其他结构的相关文章

STM32 枚举类型和结构体的使用

结构体就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型.        首先结构体可以在一个结构中声明不同的数据类型.        第二相同结构的结构体变量是可以相互赋值的,而数组是做不到的,因为数组是单一数据类型的数据集合,它本身不是数据类型(而结构体是),数组名称是常量指针,所以不可以做为左值进行运算,所以数组之间就不能通过数组名称相互复制了,即使数据类型和数组大小完全相同.        第三,节省内存空间        第四,高效率. 枚举工作模式:typedef

C#枚举类型和结构体

注意:枚举类型和结构体都属于值类型. 结构体:就是一个自定义的集合,里面可以放各种类型的元素,用法大体跟集合一样. 一.定义的方法: struct student { public int nianling; public int fenshu; public string name; public string sex; public int sum; } 以上的语句就是定义一个名称为student的结构体,其中包含int类型的年龄.分数.总和,和string类型的姓名.性别. 二.用法: 在

学习的枚举类型,结构以及初步了解数组

今天首先总结了前面学习的顺序结构,分支结构,循环结构和跳转语句. 然后就开始了新课的内容:枚举类型,结构和数组. 枚举类型:enum(关键字)  自定义名字(枚举类型自定义取的名字){ } 举例写下:显示QQ的三种状态和交通灯的三种颜色 namespace _015枚举 { enum QQ { //int i online=1234567, //0 offline, //1 hidden//2 } enum TraffLight:long { red, yellow, green } class

对枚举类型、结构类型的一些认识

            什么是枚举        枚举(enumeration),就是一组字面(单词),每个字面对应一个字面值.            枚举有什么用处        例如,需要把一年四季在程序中表示出来,可能会用0,1,2,3,分别表示一年四季中的春.夏.秋.冬.这样不能直观的表示出是哪个季节,另外这样的代码不能成为健壮的代码.假设,我们在程序中定义了一个int类型的变量seaSon,用它来存入季节.此时,可以把超出定义四季范围内的int类型数字赋值给seaSon. int se

C#学习笔记(隐式和显式转化、枚举类型、结构类型、数组类型和字符串)

1 类型转换 1.1 隐式转换:从类型A到类型B的转换可以在所有情况下进行,执行转换的规则非常简单,可以让编译器执行转换. ushort destinationVar; char sourceVar = 'a'; destinationVar = sourceVar; Console.WirteLine("soueceVar Val:{0}",sourceVar); Console.wirteLine("destination Val:{0}",destinatio

指针直接赋值为整型AND利用宏定义求结构体成员偏移量

首先我们要更正一个很熟悉的概念,那就是指针不仅仅是“地址”,指针还有一个很重要的特性,那就是“类型”. 指针初始化时,“=”的右操作数必须为内存中数据的地址,不可以是变量,也不可以直接用整型地址值(但是 int *p = 0; 除外,该语句表示指针为空): 所以 int *p = 10; 这样的代码是不允许的.在C++里面直接是error的,即使在一些C编译器中以warning的形式提示,但是warning有的时候也很严重.所以这种东西不要用.从const int到int*是不存在隐士转换的.

UIView的几个枚举定义

UIView是iOS开发最主要的视图,非常多控件都是继承它,掌握当中的几个基本枚举定义,有利益理解视图的载入和參数差别. 一.UIViewAnimationCurve UIView的基本动画变化规律 typedef NS_ENUM(NSInteger, UIViewAnimationCurve) { UIViewAnimationCurveEaseInOut, // 淡入淡出 UIViewAnimationCurveEaseIn, // 開始时慢 UIViewAnimationCurveEase

dbms_redefinition在线重定义表结构 可以在表分区的时候使用

dbms_redefinition在线重定义表结构 (2013-08-29 22:52:58) 转载▼ 标签: dbms_redefinition 非分区表转换成分区表 王显伟 在线重定义表结构 在线转换非分区表 分类: ORACLE新特性实践 刚接手一套系统应用数据库,因为项目建设期间种种原因,库是非归档模式也没有备份,更让我无语的是有个表增长的比较快,将近90G大小,每隔一段时间都要删除前三个月以前的数据,然后再用shrink收缩空间,因为是非分区表,shrink很是浪费时间,而且很多时间无

宏定义放在结构体里

#include<stdio.h> struct node { #define Max(a,b) a>b?a:b//个人感觉宏定义放在结构体里和放在放在最上面是没有区别的,可能是为了读代码方便 int x,y; }; struct node2 { int x,y; }; int main() { node a; node b; scanf("%d%d",&a.x,&a.y); scanf("%d%d",&b.x,&b