Java之枚举----小试牛刀练习
1.定义一个电脑品牌枚举类,其中只有固定的几个电脑品牌。
1.1简单枚举类,不设置属性和方法
package 第十四章枚举;
public enum Brand {
Lenovo,Dell,Accer,ASN;
}
1.2复杂枚举类,添加属性和方法
package 第十四章枚举;
public enum Brand {
//可以直接在枚举对象中设置枚举对象添加的属性:如Lenovo,Dell----为属性赋值的方法和普通类相同---相当于使用了有参构造方法
//也可以不设置,比如Accer,ASN-----在测试类中,用set方法设置-----相当于使用了无参构造方法,然后再用set赋值
Lenovo("联想",5999),Dell("戴尔",5999),Accer,ASN;
//枚举可以添加属性和方法
private String name;
private int price;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
private Brand(String name, int price) {
this.name = name;
this.price = price;
}
private Brand() {
}
@Override
public String toString() {
return "name="+name+",price="+price;
}
}
1.3测试类
package 第十四章枚举;
public class Test {
public static void main(String[] args) {
//枚举类型创建对象
//first
Brand brand=Brand.Accer;
System.out.println(brand);
//secong
Brand brand2=Brand.valueOf("Dell");
System.out.println(brand2);
//获取所有枚举值
Brand[] brands=Brand.values();
for (Brand brand3 : brands) {
System.out.println(brand3);
}
brand.setName("宏基a系列");
brand.setPrice(10000);
System.out.println(brand);
}
}
2.定义一个Person类,其中包含姓名,年龄,生日,性别,其中性别只能是“男”或“女”
分析:
因为性别只能是“男”或“女”,那么就必须使用到枚举类了
代码:
Person类
package 第十四章枚举;
//姓名,年龄,生日,性别,其中性别只能是“男”或“女”
public class Person {
private String name;
private int age;
private String birthday;
private Enum sex;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public Enum getSex() {
return sex;
}
public void setSex(Enum sex) {
this.sex = sex;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", birthday=" + birthday + ", sex=" + sex + "]";
}
public Person(String name, int age, String birthday, Enum sex) {
super();
this.name = name;
this.age = age;
this.birthday = birthday;
this.sex = sex;
}
public Person() {
super();
}
}
Sex枚举类
package 第十四章枚举;
public enum Sex {
男,女;
}
测试类
package 第十四章枚举;
public class Test2 {
public static void main(String[] args) {
//此时性别只能取--sex.女或sex.男
Person person=new Person("张三", 18, "9月3日", Sex.女);
person.setSex(Sex.男);
}
}
Java之枚举----小试牛刀练习的更多相关文章
- Java核心 --- 枚举
Java核心 --- 枚举 枚举把显示的变量与逻辑的数字绑定在一起在编译的时候,就会发现数据不合法也起到了使程序更加易读,规范代码的作用 一.用普通类的方式实现枚举 新建一个终态类Season,把构造 ...
- 深度分析 Java 的枚举类型:枚举的线程安全性及序列化问题(转)
写在前面: Java SE5 提供了一种新的类型 Java的枚举类型,关键字 enum 可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用,这是一种非常有用的功能 ...
- java的枚举2
首先先理解一下java中枚举的本质. java的世界中一切皆是类,下面通过一个例子解释一下enum的本质: package cn.xnchall.enumeration; public class G ...
- Java开发知识之Java的枚举
Java开发知识之Java的枚举 一丶什么是枚举 枚举可以理解为就是常量,在Java中我们定义常量.都是用 final语句. C++中都是用const关键字. 枚举跟C++概念都是一样的.就是特定的常 ...
- Java学习--枚举
枚举类型enum,地位等同于class,interface 使用enum定义的枚举类型,也是一种变量类型,可用于声明变量 枚举的一些特征 1.它不能有public的构造函数,这样做可以保证客户代码没有 ...
- Java中枚举的使用
Java中枚举其实就是静态常量,今天发现枚举里面其实还能加方法,学习了下, 代码如下: package org.pine.test; import java.util.HashMap; import ...
- 深度分析Java的枚举类型—-枚举的线程安全性及序列化问题
原文:深度分析Java的枚举类型--枚举的线程安全性及序列化问题 枚举是如何保证线程安全的 要想看源码,首先得有一个类吧,那么枚举类型到底是什么类呢?是enum吗?答案很明显不是,enum就和clas ...
- Java中枚举的写法和用法
在公司代码中,用了一大堆的枚举,看得我好懵逼.下面开始看看枚举怎么写和怎么用. 一.枚举的写法 关于枚举的写法,网上好多这方面的知识.这里直接贴一个我自己写的枚举类的代 ...
- java基础---->Java中枚举的使用(一)
这里介绍一下java中关于枚举的使用. java中枚举的使用 一.枚举中可以定义方法 参照于TimeUnit的使用,TimeUnit.MILLISECONDS.sleep(1000); LoveUti ...
随机推荐
- Caffe学习系列(四)之--训练自己的模型
前言: 本文章记录了我将自己的数据集处理并训练的流程,帮助一些刚入门的学习者,也记录自己的成长,万事起于忽微,量变引起质变. 正文: 一.流程 1)准备数据集 2)数据转换为lmdb格式 3)计算 ...
- Zepto 添加手势判断拓展方法(思路+原理)
一.前言 这几个月事情比较多,写了一些博客都没有来得及整理发布,今天刚好有一位同事在开发前端页面的时候用到了手势判断.所以翻出了之前写的 demo,顺便整理一下作为记录. 手势判断在各种应用中都十分常 ...
- 【转载】stm32中断学习
中断对于开发嵌入式系统来讲的地位绝对是毋庸置疑的,在C51单片机时代,一共只有5个中断,其中2个外部中断,2个定时/计数器中断和一个串口中断,但是在STM32中,中断数量大大增加,而且中断的设置也更加 ...
- vue 调用高德地图
一. vue-amap,一个基于 Vue 2.x 和高德地图的地图组件 https://elemefe.github.io/vue-amap/#/ 这个就不细说了,按照其文档,就能够安装下来. 二. ...
- [工具技巧] SecureCRT使用技巧 V1.0
本文档适用对象为需要使用secureCRT做系统或网络等调试的工程师,其必须有用过该款软件,基础功能会使用.对于那些需要修改大量设备的配置时像远程升级等等,更应该学习本文档. 1 Secu ...
- hibernate 多对多关系总结
hibernate中,对对象关系的映射处理估计是最让人迷惑和头疼的,特别是cascade和inverse属性的使用,不知已经杀死了我多少个脑细胞了,好记性永远比不上烂笔头,为了能节省自己的脑细胞,降低 ...
- C# Winform中的窗体传值
关于C#winform窗体之间的传值有以下几种做法 1 通过构造函数传值 2 属性传值 以上两种方法不早详细介绍. 3 通过事件传值,委托传值 首先看一下通过委托传值吧. 1,创建两个窗体,分别是Fo ...
- Jquery将<a>链接变为post请求
- LINQ基础(一)
LINQ(Language Integrated Query,语言集成查询),在C#语言中集成了查询语法,可以用相同的语法访问不同的数据源. LINQ提供了不同数据源的抽象层,所以可以使用相同的语法. ...
- [笔记]我的Linux入门之路 - 01.Ubuntu安装
最近学机器学习,感觉matlab/octave用的人不多,想改用python.于是开始学python,辛辛苦苦学会了自己装环境和装第三方库,结果发现scipy库竟然没有win版本!于是想着那我得装个l ...