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 ...
随机推荐
- NOIP2001T4car的旅行计划
洛谷传送门 一看数据就是floyed(毕竟年代久远),然而建图不是那么好贱好建,只知道三个机场,需要判断斜边来求第4个机场坐标. 往后一些麻烦的建图. 最后floyed就好. --代码 #includ ...
- canvas绘制一定数目的圆(均分)
绘制多圆 2016年5月24日12:12:26 绘制一定数目(num)颜色随机的小圆,围成一个大圆.根据num完全自动生成,且小圆自动均分大圆路径(num≥20). 效果: 前置技能:(1).Canv ...
- 什么是NoSQL
NoSQL = Not Only SQL 不仅仅是SQL NoSQL,指的是非关系型的数据库(没有声明性查询语言,没有预定义的模式,可以为键 - 值对存储,列存储,文档存储,图形数据库).不同于传统的 ...
- JS中substring与substr的区别
Substring: 该方法可以有一个参数也可以有两个参数. (1) 一个参数: 示例: var str=“Olive”: str.substring(3); 结果:“ve” 说明:当substri ...
- grunt构建一个项目
准备工作:grunt基于node环境运行,所有先安装node.js 1.安装grunt,通过node的npm的包管理工具 >npm install grunt --save-dev 2.npm ...
- 详解 Node + Redux + MongoDB 实现 Todolist
前言 为什么要使用 Redux? 组件化的开发思想解放了繁琐低效的 DOM 操作,以 React 来说,一切皆为状态,通过状态可以控制视图的变化,然后随着应用项目的规模的不断扩大和应用功能的不断丰富, ...
- 第三章 Docker的镜像
3.1.获取镜像 获取镜像 docker pull name[:TAG] #默认是从网络下载镜像,不指定tag会人下载latest标签下的镜像. 1 2 docker search ubuntu do ...
- JSON 解析工具的封装(Java)
JSON 解析工具的封装(Java) 一直想有一个属于自己的JSON工具,今天终于弄好了..... 1.添加pom依赖包 <!--json解析--> <dependency> ...
- poj1990树状数组
Every year, Farmer John's N (1 <= N <= 20,000) cows attend "MooFest",a social gather ...
- 使用OpenOffice实现各种文档转pdf或者html文档
---恢复内容开始--- 最近在做项目时需要写一个功能,将doc,ppt,xsl等文档做在线预览.网上查了很多资料,开始适用poi将文档转成pdf没成功,后来使用了OpenOffice4 + jodc ...