黑马程序员_【总结】_ 高新_2_枚举和JavaBean

PCIe5.0均衡简介(整理版) pcie5.0 均衡 equalization 阅读详情
枚举和JavaBean


---------- android培训 、 java培训、期待与您交流! ---------- 

---------------------------------------------------------------------------------------------------------------------------------------------
1、枚举
1、简单说,枚举定义的变量就是固定值范围内的某一个值
2、枚举不能实例化(new)、枚举不能继承其他类、也不能被其他类继承
3、枚举值 列表必须在第一行,
4、构造方法必须是 私有的,  构造方法在枚举值 列表之后
5、【枚举】只有一个成员时,可以当作【单列】实现方法。
6、掌握高级枚举
2、javaBean
1、JavaBean是一种拥有特殊方法的Java类,主要用于传递数据信息
1、JDK中提供了对JavaBean进行操作的一些API,这套API就称为内省
2、PropertyDescriptor(propertyName,Class.class); 快捷取出一个属性
4、javaBean既可以当本类使用一些方便的功能,也可以当作普通类使用普通类的功能
-----------------------------------------------------------------------
【1】
 Enum enumeration 枚举:整型常数的集合
 就是要让某个类型的变量的取值只能为若干固定值之中的一个。
 是一个特殊的类,其中的每一个元素都是该类的一个对象。
枚举在日常生活中很常见,例如表示星期的:
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,
1、枚举不能实例化(new)、枚举不能继承其他类、也不能被其他类继承
2、枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。
枚举可以让编译器在编译时就可以控制源程序中填写的非法值,
普通变量的方式在开发阶段无法实现这一目标。
定义枚举:
1、构造方法在 对象列表之后
2、构造方法必须是私有的。
3、指定参数直接在对象后面指定。


【枚举 --入门】
public static void showEnum(){
		WeekDay1 wd1 =WeekDay1.MON;
			
		System.out.println("今天星期几?:"+wd1);
		System.out.println("明天星期几?:"+wd1.nextDay());
		// 这里不能new,能调用 枚举WeekDay范围内的某一个值
		WeekDay wd2 = WeekDay.FRI;
					//这里就只能调用 枚举范围内的某一个值
		System.out.println("今天星期几?:"+wd2+"\tS3");		
					//自动调用toString()方法。
		System.out.println(wd2.ordinal()+">>FRI的下标。 FRI排第几");
		System.out.println(wd2.name()+"\t WeekDay对象名");
		
		//枚举的静态方法:
		System.out.println(WeekDay.valueOf("SUN")+"\t把字符串转换为 枚举对象"); 
		System.out.println(WeekDay.values().length+"\t把枚举编变成数组。   获得数组长度");
		
		//转换为一个数据  用WeekDay类型接收,并循环打印
		WeekDay [] str = WeekDay.values();
		System.out.println("打印出所有枚举参数");
		for(WeekDay day : str){
			System.out.println(day);
		}
	}
	//【】常见枚举
	public enum WeekDay{
		//设定枚举范围。
		//SUN,MON,TUE,WED,THU,FRI,SAT;
		SUN(1),MON(),TUE,WED,THU,FRI,SAT;
		private WeekDay(){
			System.out.println("启动无参构造方法");
		};
		private WeekDay(int day){			
			System.out.println("有有----------参构造方法");
		}
	}

【高级枚举   TrafficLamp //交通灯】
enum TrafficLamp{
		//1:	RED,GREEN,YELLOW;         	列出参数列表
		//3		RED{},GREEN{},YELLOW{};  	实现父类的子类实例
		//6		(30)  						传递 不同灯的时间
		RED(30){
			//4 子类实现 ---父类的方法
			public TrafficLamp nextLamp() {
				return GREEN;//4-1
			}			
		},
		GREEN(36){
			public TrafficLamp nextLamp() {
				return YELLOW;
			}			
		},
		YELLOW(6){
			public TrafficLamp nextLamp() {
				return RED;
			}			
		};
		//2 写出 抽象方法
		public abstract TrafficLamp nextLamp();  //返回的是这个类 的类型
		//5-1  每个灯都有时间
		private int time;
		//5-2	构造一个带时间的有参方法
		private TrafficLamp(int time){
			this.time = time;
		}
	}
【 该高级枚举】
 1、new Date(){}  这是一个子类调用父类的无参构造方法。   
   ->>>new Date(300){}   调用的是有参构造方法
2、内部类。
3、类的方法可以返回自己这个类类型
4、类里面可以定义常量,常量的结果指向这个类型的实例对象
5、【枚举】只有一个成员时,可以当作【单列】实现方法。



【枚举的几个常用方法:】
用法一:常量
见:【枚举 --入门】
用法二:switch
JDK1.7后switch()可以传String等类型的参数,同样可以传递枚举
enum Signal {  
    GREEN, RED  ;
	}  
	class TrafficLight {  
	    Signal color = Signal.RED;  
	    public void change() {  
	        switch (color) {  
	        case RED:  
	            color = Signal.GREEN;  
	            break;   
	        case GREEN:  
	            color = Signal.RED;  
	            break;  
	        }  
	    }  
	}  
用法三:向枚举中添加新方法
见: 【高级枚举   TrafficLamp //交通灯】
private TrafficLamp(int time)带参构造方法
public abstract TrafficLamp nextLamp();抽象方法。
用法四:覆盖枚举的方法
比如toString()的覆盖
用法五:实现接口
所有的枚举都继承自java.lang.Enum类。
由于Java 不支持多继承,所以枚举对象不能再继承其他类。只能实现接口
在【高级枚举   TrafficLamp //交通灯】 基础上定义一个接口
interface imTest{
void show();
}
枚举中方法:
enum TrafficLamp implements imTest
并在类中写覆盖 show()即可
用法六:使用接口组织枚举
interface Food {  
    enum Coffee implements Food{  
        BLACK_COFFEE,DECAF_COFFEE,LATTE,CAPPUCCINO  
    }  
    enum Dessert implements Food{  
        FRUIT, CAKE, GELATO  
    }  
} 

【2】
JavaBean与内省
public class javaBeanTest {
	public static void main(String[] args) throws Exception
	{
		show p = new show("mm");
		String propertyName = "name";
		//PropertyDescriptor 方法能快速取出 javaBean 方法             参数接收一个变量 对象的Class文件
		PropertyDescriptor pd = new PropertyDescriptor(propertyName,p.getClass());		
		//获取   get方法
		Method methodGet = pd.getReadMethod();
		//调用目标的方法,取得该值
		Object retVal1 = methodGet.invoke(p);
		System.out.println("打印该值: "+retVal1);
		//获取 set方法
		Method methodSet = pd.getWriteMethod();
		Object retVal2 =methodSet.invoke(p, ">>把该字符串  写入   p对象");
		methodGet = pd.getReadMethod();
		retVal1 = methodGet.invoke(p);
		System.out.println("新设定的值: "+retVal1);
	}
}
class show{
	private String name;
	private int age;
	show(String name){
		this.name=name;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}	
}

----封装一下更好。
//PropertyDescriptor 读取类一个属性		
	//写
	private static void setProperty(ReflectPoint pt1, String propertyName,
			int value) throws IntrospectionException, IllegalAccessException,
			InvocationTargetException {
		
		PropertyDescriptor pd = new  PropertyDescriptor(propertyName,pt1.getClass());
		Method methodSetX = pd.getWriteMethod();//获取set 方法		
		methodSetX.invoke(pt1,value);  //调用 该类 写入数据
	}
	//读取 
	private static Object getProperty(Object pt1,String propertyName)
			throws IntrospectionException, IllegalAccessException,
			InvocationTargetException {
		
		PropertyDescriptor pd = new  PropertyDescriptor(propertyName,pt1.getClass());
		Method methodGetX = pd.getReadMethod();	//获取 get 方法		
		Object retVal = methodGetX.invoke(pt1); //调用get 方法,获取数据
		return retVal;		
	}


方法摘要
1、PropertyDescriptor(propertyName,Class.class);快捷取出一个属性
2、getReadMethod()返回 get方法
3、getWriteMethod() 返回 set 方法
4、invoke(对象,参数);   调用对象构造函数,把参数传递给对象。



1、JDK中提供了对JavaBean进行操作的一些API,这套API就称为内省
2、拥有特殊格式方法名,也就是说,一个类符合这个特性,就能被当作javaBean使用时,
1、可以当普通类,也可以当JavaBean类,JavaBean提供一些额外的方便
1、JavaEE开放中常用JavaBean
2、getX访问x 时   JavaBean 具有独特的快捷访问方式。
2、JavaBean的属性是根据方法名推断出来的,它根本看不到java类内部的成员变量,如:
getAge()、setAge ->>  Age   isList ->> List   JavaBean的角度就是有Age、List的属性
3、JavaBean是一种特殊的Java类,主要用于传递数据信息,
这种java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。
4、JavaBean的属性名,
如果第二个字母是小写,则把第一个字符小写 :setAge ->>  Age
如果第二个字母是大写,则不变 : getCPU ->>  CPU
5、如果要在两个模块之间传递多个信息,可以将这些信息封装到一个JavaBean中,
这种JavaBean的实例对象通常称之为值对象(Value Object,简称VO)。
这些信息在类中用私有字段来存储,如果读取或设置这些字段的值,则需要通过一些相应的方法来访问。
6、 PropertyDescriptor 描述 Java Bean 通过一对存储器方法导出的一个属性。 
7、  javaBean提供了一些快捷的方法,根据实际开发可以把符合该类特点的类进行多元的处理方法

【】Beanutils  工具包
1、添加 BreaUtils.jar    和Logging.jar   2个包
2、读取   BeanUtils.getProperty(对象,变量);
3、写入   BeanUtils.setProperty(对象,变量,值);
4、BeanUtils 在对变量处理的时候,能把String--int 互换,自动转换类型
5、PropertyUtils.setProperty(对象,变量,值);

public static void getPro()throws Exception{
		ReflectPoint rp = new ReflectPoint(8,6);
		String propertyName = "x";
		//1
		Object retVal = getProperty(rp, propertyName);  		
		System.out.println(retVal);  //1 end		
		//2
		Object value = 127;
		setProperty(rp, propertyName, value);
		//3 【BeanUtils】工具包 对比1、2 确实简单方便了好多。
		System.out.println(BeanUtils.getProperty(rp, "x"));
		BeanUtils.setProperty(rp, "x", "3215");		 
		System.out.println(rp.getX());
	}






---------------------------------------------------------------------------------------------------------------------------------------------
---------- android培训、 java培训、期待与您交流!----------


----------------------------------------------
手把手搭建摄像头驱动(一):I2C设备树插件与OV5640实战 本文手把手指导如何搭建OV5640摄像头驱动,重点讲解I2C设备树插件的编写与实战应用。通过硬件连接验证、I2C驱动框架搭建、设备树插件编译及动态加载调试,系统介绍Linux驱动开发全流程,并提供常见问题解决方案,帮助开发者快速掌握摄像头驱动开发技术。 阅读详情

相关推荐

WinCC7.5SP2生成PDF报表显示有错误或残缺的问题及解决方法

WinCC V7.5 SP2 自带的生成PDF报表功能异常。生成的PDF报表内容显示空白或有残缺。经测试后发现可以通过替换Adobe PDF Library库文件的方法解决该问题。

commandboy的博客 3659

fastjson支持在某些业务场景下,将Enum类型作为JavaBean序列化输出

https://github.com/alibaba/fastjson/wiki/enum_custom_serialization

先拙的博客 431

高能物理相关软件

国内高能物理实验背景     研究物质最深层次结构及相互作用的前沿基础科学。 现代高能物理实验的要素    实例源 、 探测器、   电子学、  触发 DAQ、  原始数据、 刻度、重建 、物理分析、  成果  。 离线软件的地位和作用。    是硬件设备和物理学家的桥梁,是从数据到物理成果转化中的关键和重要的环节。 高能物理实验及其特点 独一无二性,实验规模越来越大,努力省钱(使用

Alan Zhuang的博客 3299

fastjson 1和2 将 enum 转 json字符串

使用 fastjson 和fastjson2 对enum 转json 的操作

weixin_43445244的博客 527

[QDS]从零开始,写第一个Qt Design Studio到程序调用的项目

最近在使用Qt Design Studio进行开发,但是简中网上要不就是只搜得到Qt Designer(Qt Creator内部库),要不就只搜得到一点营销号不知道从哪里搬来的账号,鉴于Qt Design Studio是一个这么强大的软件,自然是需要来进行一下小小的实践的。所以开了这篇文章,方便没有使用过Qt Design Studio 和 QML的开发者也可以快速上手QDS(Qt Design Studio)。在本文中,你将学会如何使用QDS开发一个简单的QML程序,与你的C++后端代码进行交流。

Andius的博客 8213

Ubuntu 20.04 上 Geant4 安装避坑全记录:从源码编译到 B1 示例跑通(含数据包加速下载)

本文详细记录了在Ubuntu 20.04系统上从源码编译安装Geant4的全过程,包括环境准备、依赖安装、CMake参数解析、多线程编译优化以及数据包加速下载等关键步骤。特别针对B1示例的测试与验证提供了完整流程,帮助科研人员和学生避开常见安装陷阱,提升粒子物理模拟效率。

weixin_31220401的博客 312

Springboot系列之RestApi中获取枚举类属性的几种方式

前言 我们在日常开发中经常会遇到,实体类中的枚举属性,在通过@ResponseBody注解返回到前端后,默认被解析成了枚举对象的name值,当我们需要获取枚举类的详细属性时就会变得非常麻烦,今天给大家分享几种常用的获取枚举类属性的方式。 例子 我们先通过一个小例子讲解这个问题,首先我们要准备一个简单的接口,用于查询用户信息,用户实体中包含性别、用户类型和用户状态三种枚举属性,我们下面的例子中, 将...

Handsome丶Boy 4398

RaiDrive+AList保姆级教程:5分钟搞定OneDrive/百度网盘挂载到本地(附WebDAV配置)

本文提供RaiDrive+AList的保姆级教程,5分钟内实现将OneDrive/百度网盘挂载到本地的详细步骤,包括WebDAV配置。通过AList统一转换云存储协议,RaiDrive虚拟磁盘挂载,显著提升多网盘管理效率,适合需要跨平台操作文件的用户。

weixin_28331555的博客 456

【daily】Java枚举 - fastjson对enum的处理

目的 1、枚举值转换成完全的json; 2、对象中的枚举成员完全转换成json; 3、枚举类的全部值转换成json; 枚举定义 public enum SongsEnum { SAFE_AND_SOUND(1,"Taylor Swift","Safe&Sound","2011-12-26") ,SHAKE_IT_OFF(2,"Taylor Swift"...

weixin_30507269的博客 839

工程师必看:如何用功率谱密度搞定随机振动测试(附Grms计算实例)

本文为工程师详解如何通过功率谱密度(PSD)曲线计算Grms(总均方根加速度),从而量化随机振动测试的强度。文章拆解了平直谱、斜谱的计算公式,提供了完整的Grms计算实例,并指出了单位换算、对数坐标等常见工程陷阱,帮助工程师精准完成测试准备与设备推力评估。

3c4x5z6v7b的博客 625

RT-DETR改进策略【损失函数篇】| 2024 引进Focaler-IoU损失函数 加强边界框回归 (Focaler-DIoU、Focaler-GIoU、Focaler-CIoU等)

本文记录的是改进RT-DETR的损失函数,将其替换成。现有研究通过利用边界框之间的几何关系来提高回归性能,但忽略了困难样本和简单样本分布对边界框回归的影响。不同检测任务中困难样本和简单样本的分布不同,对于简单样本占主导的检测任务,关注简单样本的边界框回归有助于提高检测性能;对于困难样本比例较高的检测任务,需要关注困难样本的边界框回归。,提高检测器在不同检测任务中的性能。实现的。

Limiiiing的博客 1922

fastjson深度源码解析JSON成员函数

JSON成员函数 概要 fastjson序列化主要使用入口就是在JSON.java类中,它提供非常简便和友好的api将java对象转换成json字符串。 /** * 便捷序列化java对象,序列化对象可以包含任意泛型属性字段,但是不适用本身是泛型的对象。 * 默认序列化返回字符串...

weixin_41563161的博客 517

基于Termux的Android平台OpenClaw部署:移动端AI助理实现

本文介绍了在Android设备上通过Termux部署OpenClaw AI助理的方案。Android设备的便携性、Termux提供的完整Linux环境以及多样化的硬件配置使其成为理想的部署平台。文章详细分析了不同级别Android设备的硬件规格(从入门级到旗舰级),并提供了最低/推荐配置要求。部署步骤包括Termux安装初始化、Python环境配置以及性能优化建议。该方案充分利用Android设备的传感器和电池供电优势,为移动办公、学习等场景提供了低成本、高便携性的AI助理解决方案。

博客 3011

黑马程序员_高新技术:2) 枚举、内省JavaBean

1.为什么要有枚举   问题:要定义星期几或性别的变量,该怎么定义? 假设用1-7分别表示星期一到星期日,但有人可能会写成int weekday = 0;或即使使用常量方式也无法阻止意外。     枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报错。 枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标。

awangk2的专栏 676

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

黑马程序员 Java高新技术 枚举,内省

------- android培训、java培训、java学习型技术博客、期待与您交流! ---------- 什么是枚举 枚举是一些计算机编程语言的一种构造类型,它用于声明一组命名的常数, 当一个变量有几种可能的取值时,可以将它定义为枚举类型,变量的值只限于列举出来的值的范围内. 当枚举只有一个成员时,就可以作为一个单例。 如何用普通类实现枚举 私有构造方法 每个元

ice1988的学习笔记 397

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

黑马程序员——Java高新技术---枚举、内省、类加载器、注解

------- android培训、java培训、java学习型技术博客、期待与您交流! ---------- 第一讲     枚举 一、概述 这里说的枚举,不是集合vector的特有枚举迭代器,而是JDK1.5的一个新特性。为什么要有枚举?问题:要定义星期几或性别的变量,该怎么定义?假设用1-7分别表示星期一到星期日,但有人可能会写成int weekday

中仔的博客 1137

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

黑马程序员 高新部分

1,静态导入。 import 导入某一个包,某一个类。 import static 导入静态成员。 当类名重名时,需要指定具体的包名。 当方法重名时,指定具备所属的对象或类。 2,可变参数: 当一个方法接受的参数个数不固定时,可用可变参数:...args 注意: 1,可变参数只能在参数列表最后。 2,...位于变量类型和变量名之间,前后有无空格都可以。 3,调用可变参数

609

黑马程序员_11_高新技术之JavaBean和注解

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------  JavaBean是一种特殊的Java类,主要用于传递数据信息,这种java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。也就是说,JavaBean的属性是根据方法名称来的。  如果要在两个模块之间传

s568615947的专栏 450

java高新技术_枚举反射内省(黑马程序员)

------- android培训、java培训、期待与您交流! ---------- 我们在java的技术学习中要时刻注意新知识的学习 1.如何传入多个从参数?这里是指可变参数 我们知道1.可变参数只能出现在参数列表的最后。2.。。。位于类型与变量名之间,有无空格均可! public static void TecDemo_1(int num,String... args) {

movaxbxcxdx的专栏 419

黑马程序员-Java高新技术

——-android培训java培训期待与您交流!———-静态导入 import static:导入一个类中的某个静态方法或所有静态方法。如:import static java.lang.Math.max;,导入的是Math下的max方法。 package com.sergio.NewTecl; //静态导入包中的所有静态方法 import static java.lang.Math.*; //静

jyhonggang13848的专栏 599

黑马程序员_java高新技术(1)枚举、反射、内省

------- android培训、java培训、期待与您交流! ---------- JDK 5.0 静态导入,自动装箱拆箱,增强for循环, 可变参数,枚举,泛型,元数据 day01***Eclipse/枚举 *Workspace与project     会切换工作间与导入项目 *Perspective(透视图)与view windows下有reset perspectiv

wzq330995030的专栏 733

黑马程序员——高新技术

一、JDk1.5的五个新特性:这是我看完视频以后记得最牢固的东西 1.静态导入 静态导入获取绝对值: import static java.lang.Math.*; 2.增强for循环 高级for: for(数据类型   变量名:集合变量名){} 享元模式  flyweight  如果有很多很小的对象,他们有很多相同的东西把它们变成一个对象,        不同的属性变成外部属性作

however_的专栏 525

黑马程序员 JAVA编程之高新技术

基本数据类型的装箱与拆箱: 装箱:把基本类型用它们相应的引用类型包装起来,使其具有对象的性质。int包装成Integer、float包装成Float 拆箱:和装箱相反,将引用类型的对象简化成值类型的数据 Integer a = 100;                  这是自动装箱  (编译器调用的是static Integer valueOf(int i)) int     b = n

it_sky163的专栏 418

黑马程序员—Java自学进阶(总结篇)

----------------------android  java培训、期待与您交流! ----------------------   对知识的归纳与总结是学习中非常重要和必不可少的一个重要环节,这样可以做到“温故而知新”,从而对之前的学习有新的理解和收获,今天就总结一从Java自学进阶开始以来,毕向东老师讲解过程中涉及到的设计模式和张孝祥老师讲解的Java高新技术。   视频中涉

yu77ruguo的专栏 900

黑马程序员——学习日志12高新技术(上)

------- android培训、java培训、期待与您交流! ----------

pslichao的专栏 546

黑马程序员_javaBean学习笔记

------- android培训、java培训、期待与您交流! ----------         JavaBean是一种特殊的Java类,主要用于传递数据信息,这种java类中的方法主要用于访问私有的字段,且方法名符合某种命名规则。 如果要在两个模块之间传递多个信息,可以将这些信息封装到一个JavaBean中,这种JavaBean的实例对象通常称之为值对象(Value Object,

mayixiaoshu的专栏 424
上一篇: 去哪儿网怎么沦为骗子的平台了,一步步揭开去哪儿网欺骗消费者的把戏
下一篇: 黑马程序员_【总结】_ 高新_3_泛型和类型参数
Hnotify
博客等级 码龄13年 3粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值