Java:枚举和注解的使用

枚举

package com.gitee7;
/*
    
   Autor:linrui
   Date: 2018/12/7

*/
//enum与Enum区别:
//enum是一个关键字,使用enum定义的枚举类本质上就相对于一个类继承了Enum这个抽象类而已。
//enum并不是一种新的结构,相反,它只是对一种类型的包装:
//使用enum关键字定义的枚举类本质上就相当于一个Class定义的类,继承了java.lang.Enum父类。
//1.构造方法protected Enum(String name, int ordinal)
//2.取得枚举名字:public final String name()
//3.取得枚举序号:public final int ordinal()


enum Color1{
    RED,BLUE,GREEN
}

//可以在枚举中定义属性、方法、实现接口。
//实现接口
interface IColor{
    public String getColor();
}
enum Color implements IColor{
    RED("红色"),GREEN("绿色"),BLUE("蓝色");  //定义内容多个,枚举对象需要在第一个
    private String title;
    private Color(String title){
       this.title=title;
    }
    public String toSting(){
        return this.title;
    }

    @Override
    public String getColor() {
        return "这是覆写的父类的getColor方法";
    }
}
public class Test5 {
    public static void main(String[] args) {
        System.out.println(Color.BLUE);
        System.out.println(Color.BLUE.ordinal()+Color.BLUE.name());
        //取得所有的枚举数据:values()返回的是一个枚举的对象数组。
        for (Color temp:Color.values()){
            System.out.println("打印的序号和名字:"+temp.ordinal()+temp.name());
            //0RED
            //1BLUE
            //2GREEN
        }
        IColor icolor=Color.BLUE;
        System.out.println("Color类中的:"+Color.BLUE);
        System.out.println(icolor.getColor());

    }
}

package com.gitee7;
/*
    
   Autor:linrui
   Date : 2018/12/8
    
*/


//定义一个枚举类 表示性别,只有两个对象
enum Sex {
    MALE("男"), FEMALE("女");
    private String title;

    private Sex(String title) {
        this.title = title;
    }

    @Override
    public String toString() {
        return "这是覆写的toString方法";
    }

}
enum Sex2 {
    MALE, FEMALE;
}
public class Test6 {
    public static void main(String[] args) {
        System.out.println(Sex.MALE);

        //枚举也可以实现switch语句
        switch (Sex.MALE) {
            case MALE:
                System.out.println("你选择了MALE");
                break;
            case FEMALE:
                System.out.println("你选择了FEMALE");
                break;
                default:
                    System.out.println("选择错误");
                    break;
        }
    }
}

注解

package com.gitee7;

/*
   Autor:   linrui
   Date : 2018/12/9 
*/

//观察Person类中两种方法。
//如果没有@Override我们很容易将toString方法看成是tostring方法
//这个时候加上注解就是一个不错的选择。如果该方法确定成功覆写,则不会有语法 错误;如果没有成功覆写,则认为是语法错误。
class Person {
    @Override
    public String toString() {
        System.out.println("toString方法");
        return null;
    }

    public String tostring() {
        System.out.println("tostring方法");
        return null;
    }
}

//第二种注解。申明过期@Deprecated
//主要解决版本不匹配的问题
class Per {
    @Deprecated
    public void code() {
        System.out.println("这是一个过期的方法");
    }
}
//第三种注解。压制警告@SuppressWarnings
//当调用了某些操作可能产生问题的时候就会出现警告进行,但是警告信息并不是错,这个时候又不想总提示警告, 这个时候可以使用压制警告。
class Pers{
    @Deprecated
    public void code(){
        System.out.println("Pers中的过期方法");
    }
}


public class Test8 {
    @SuppressWarnings({"警告"})
    public static void main(String[] args) {
        Pers per=new Pers();
        per.code();
        System.out.println(new Person().toString());
    }
}

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值