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之枚举----小试牛刀练习的更多相关文章

  1. Java核心 --- 枚举

    Java核心 --- 枚举 枚举把显示的变量与逻辑的数字绑定在一起在编译的时候,就会发现数据不合法也起到了使程序更加易读,规范代码的作用 一.用普通类的方式实现枚举 新建一个终态类Season,把构造 ...

  2. 深度分析 Java 的枚举类型:枚举的线程安全性及序列化问题(转)

    写在前面: Java SE5 提供了一种新的类型 Java的枚举类型,关键字 enum 可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用,这是一种非常有用的功能 ...

  3. java的枚举2

    首先先理解一下java中枚举的本质. java的世界中一切皆是类,下面通过一个例子解释一下enum的本质: package cn.xnchall.enumeration; public class G ...

  4. Java开发知识之Java的枚举

    Java开发知识之Java的枚举 一丶什么是枚举 枚举可以理解为就是常量,在Java中我们定义常量.都是用 final语句. C++中都是用const关键字. 枚举跟C++概念都是一样的.就是特定的常 ...

  5. Java学习--枚举

    枚举类型enum,地位等同于class,interface 使用enum定义的枚举类型,也是一种变量类型,可用于声明变量 枚举的一些特征 1.它不能有public的构造函数,这样做可以保证客户代码没有 ...

  6. Java中枚举的使用

    Java中枚举其实就是静态常量,今天发现枚举里面其实还能加方法,学习了下, 代码如下: package org.pine.test; import java.util.HashMap; import ...

  7. 深度分析Java的枚举类型—-枚举的线程安全性及序列化问题

    原文:深度分析Java的枚举类型--枚举的线程安全性及序列化问题 枚举是如何保证线程安全的 要想看源码,首先得有一个类吧,那么枚举类型到底是什么类呢?是enum吗?答案很明显不是,enum就和clas ...

  8. Java中枚举的写法和用法

            在公司代码中,用了一大堆的枚举,看得我好懵逼.下面开始看看枚举怎么写和怎么用. 一.枚举的写法         关于枚举的写法,网上好多这方面的知识.这里直接贴一个我自己写的枚举类的代 ...

  9. java基础---->Java中枚举的使用(一)

    这里介绍一下java中关于枚举的使用. java中枚举的使用 一.枚举中可以定义方法 参照于TimeUnit的使用,TimeUnit.MILLISECONDS.sleep(1000); LoveUti ...

随机推荐

  1. 【Tomcat源码学习】-4.连接管理

    前面几节主要针对于Tomcat容器以及内容加载进行了讲解,本节主要针对于连接器-Connector进行细化,作为连接器主要的目的是监听外围网络访问请求,而连接器在启动相关监听进程后,是通过NIO方式进 ...

  2. keil5之32环境配置

    终于配置好了!!又是经过一下午加晚上的奋战,终于把环境配置好了,多亏了我强大的资料整理能力(哈哈). 真是不容易啊,本来打算放弃的,去问问别人吧.但是想想,还是靠自己吧,靠谁都不如靠自己,真是的,慢慢 ...

  3. Java泛型知识点:泛型类、泛型接口和泛型方法

    有许多原因促成了泛型的出现,而最引人注意的一个原因,就是为了创建容器类. 泛型类 容器类应该算得上最具重用性的类库之一.先来看一个没有泛型的情况下的容器类如何定义: public class Cont ...

  4. Python数据处理——numpy_3

    通过前面两次的学习,基本上对numpy有了一定的认识,所以,接下来进一步对numpy学习.同时,最后以一个有趣的例子加深对numpy的理解. import numpy as np xarr = np. ...

  5. Linux学习之要点必备

    在本节课中我将会带领大家秒懂linux命令 要点一:常见基本命令格式 命令名称+选项+参数 例如:#mkdir -r /var/ruofeng/001/ 我们通过逐级创建目录方式解释这个例子,mkdi ...

  6. spring、spring mvc、mybatis框架整合基本知识

    学习了一个多月的框架知识了,这两天很想将它整合一下.网上看了很多整合案例,基本都是基于Eclipse的,但现在外面公司基本都在用Intellij IDEA了,所以结合所学知识,自己做了个总结,有不足之 ...

  7. 【Windows 10 应用开发】跟随系统主题颜色

    有些时候,希望应用程序中的某些颜色可以与系统的主题颜色相同,并且当系统主题色改变时进行同步. 实现过程并不复杂,主要用到 UISettings 类,它公开一个 GetColorValue 方法,访问这 ...

  8. JDK安装以及安装过程中出现的问题(日志二)

    上一篇:初识hadoop-历史及其家族(日志一) 我安装的这个版本的Ubuntu,已经在java包中存在了,所以当使用java -version的时候,会出现下载包的提示,使用apt-get命令之后, ...

  9. C#文件下载(适用于各个浏览器)

    1.cs代码 public void DownFile(string filePath ,string fileName ) { // filePath 文件路径 例如:/File/记录.xlsx / ...

  10. HTML基础知识入门

    好的,我们开始吧,打开Eclipse,新建一个项目,就叫做Base吧,基础班的意思.注意哦,要建一个JavaWeb项目.右键,new,Dynamic Web Project,如果出来的菜单项没有,就点 ...