java web学习第十五天——枚举

Day 15

枚举

需要在一定的范围内取值,这个值只能是这个范围内值的任意一个

目标:实现交通信号灯的案例

枚举使用一个关键字:enum

Private Color color;

Public void test(){ thid.color=Color.RED}

enum Color(){ RED,REEN,YELLOW}

枚举的构造方法也是私有的

 

特殊的枚举类:

在枚举里面添加一个构造方法,如果构造方法里面有参数,那么枚举的每一个实例都应该有参数

在枚举里面添加一个抽象方法,那么,每一个实例里面都应该重写抽象方法

 

枚举的api的操作方法

  name():返回枚举的名称

 ordinal():返回枚举的下标

 valueOf()(Class<T> enumType,String name):得到枚举的对象

 valueof(String name):转换枚举对象

 values():获取所有枚举对象数组

 

静态导入:

在代码里面直接使用静态导入的方法,导入静态方法或常量

Import static xx.xx.xxx

*import static java.lang.System.out

*import static java.util.arrays.sort

 

自动拆装箱

装箱:把基本的数据类型装换成包装类

       Integer i= 10;

拆箱:把包装类装换成基本数据类型

       Int m = i;

 

Jdk是向下兼容的

 

增强for循环

使用的范围, 1 遍历数组 2 实现了Iterable接口的集合类

List,set 实现了Iterable,接口,map没有实现,所以不可以使用

增强for的底层就是迭代器,是为了替代迭代器

泛型的擦除:

泛型只出现在源代码阶段,编译之后就自动删除

 

可变参数

当实现多个方法,这些方法里面的逻辑基本相同,唯一不同的是传递的参数的个数不同,可以使用可变参数

Public void add(int…nums){nums 可以理解为一个数组,这个数组存储传递过来的参数}

注意:可变参数写在方法的参数列表中,不可以单独定义

在参数列表中只能有一个可变参数,方法的参数列表中可变参数只能放在最后

 

反射的原理********************************

应用在一些通用性比较高的代码中,框架中大部分使用的是反射

在框架中,基于配置文件来开发的

*****在配置文件中配置了类,可以通过反射得到类中的所有内容,可以让类中的某个方法来执行

 

所有内容包括:属性,没有参数(有)的构造方法,普通方法(set,get和 自定义)

 

反射的过程:

*首先需要把java文件保存到本地磁盘  .java

*编译java文件,生成.class

*使用jvm,把class文件通过类加载到内存中

*class文件在内存中使用Class类表示

当使用反射的时候,首先需要获取到Class类,得到了这个类之后,就可以得到class文件里面的所有的内容

属性用过一个类  Filed

构造方法通过一个类Constructor

普通方法通过一个类Method

 

 

使用反射来操作类里面的属性

首先要获取Class类,三种方法

1 Class calss1=Person.class;

2 Class class2 =new person().getClass();

3 Class class3=Class.forName(“类的全名”);

操作有参数的构造方法

Class c1=Class.forName(“目标类的全名”);

Constructor cs =c1.getConstructor(String.class,String.class);

Person p1 = (Person) cs.newInstance(“lisi”,”100”);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值