day17复习-设计模式,注解,反射入门

1.设计模式

1.1概念

什么是设计模式?
设计模式一种编程思想,一种编程思路.也就是套路.是经过大量实践检验的比较好编程思路.
Java中的设计模式分为23种
主要分3大类
1.创建型设计模式
2.结构型设计模式
3.行为型设计模式

1.2单例设计模式

什么是单例设计模式?
简单的说,通过这种套路设计的程序只会有一个对象.所以该种设计模式最重要的点就是设计完成后,保证对象的唯一
优点:节约内存,方便管理
缺点:

1.3Java中单例设计模式的步骤

1.私有化构造方法,防止外界调用构造方法创建对象
2.创建全局唯一的一个类的对象,并且私有.
3.提供公共的方法可以用来访问被私有化的对象

1.4Java中单例设计模式方案1

饿汉式设计: 在一开始就创建对象
步骤:
1.将类的构造方法私有化,外界就无法通过构造方法创建类的对象
2.在类内创建一个对象,并私有化,让外界无法随意改变
3.提供一个公共的方法,用于访问创建的对象
注意,公共的方法,要设置为静态的,因为只有静态方法是可以通过类名调用,其他普通方法要通过对象.方法名(参表)的方式调用
所以,公共方法和创建的对象都是静态的资源,用static修饰

1.5Java中单例设计模式方案2

懒汉式: 在需要时才创建对象,是饿汉式的优化方案
步骤:

1.将类的构造方法私有化,
2.在类内创建一个本类类型的引用变量
3.提供一个公共的方法用于访问本类的唯一对象(static修饰)
	3.1第一次调用时创建对象(if判断如果对象为空,创建对象,然后返回对象
	3.2以后再调用,直接返回对象对	--if判断引用变量不为null,表示已经存在对象,直接返回对象.

2.注解

2.1概念

什么是注解?
官方解释:Java 注解用于为 Java 代码提供元数据。作为元数据,注解不直接影响你的代码执行,但也有一些类型的注解实际上可以用于这一目的.

元数据(Meta Date),关于数据的数据或者叫做用来描述数据的数据或者叫做信息的信息。
   这些定义都很是抽象,我们可以把元数据简单的理解成,最小的数据单位。元数据可以为数据说明其元素或属性(名称、大小、数据类型、等),或其结构(长度、字段、数据列),或其相关数据(位于何处、如何联系、拥有者)。
————————————————
版权声明:本文为CSDN博主「超级谷歌」的原创文章,遵循CC 4.0 BY-SA版权协议,						转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/it_man/article/details/8660536

所以注解是是对代码的一个解释,但是又与注释不同.注解有点相当于一个限定,只有符合条件的才能注解,通过注解我们相当为程序带了一个帽子,一个称号.我们更容易理解.程序的作用

2.2 注解的分类

1.JDK自带的-5个
2.元注解-定义注解的注解 —5个
3.自定义注解 --自己设计的注解

JDK自带注解

1.@Override 	--表示这是一个重写方法
2.
3.
4.
5.

元注解

1.@Target 	--表示注解的能在那些地方使用(类,方法,域)
2.@Retention 	--注解的生命周期(,源代码,字节码,运行时)
3.@Inherited	-- 可继承
4.@Documented 	--在JavaDoc中有
5.@Reapeatable --可重复

JDK自带注解和元注解重点掌握 @Override @Target @Retention三个

自定注解

格式:

@interface 注解名{}
花括号{}内部可以为注解添加属性2
1.未添加属性的注解可以通过@注解名直接调用
2.添加普通属性 格式为 类型名 属性名 (); 例:int age ();
3.添加普通属性后调用注解必须为属性赋值格式 @注解名(属性 = 属性值)
如@Rice ( age =10)
4.可以为普通属性赋初值,格式 :类型名 属性名 () default 值;
例: int age () default 10;
属性被赋予初值的注解可以通过方法名直接调用
5.注解有个特殊属性,属性名恒定为value,类型不限制,格式与普通属性一致
例: String value();
只有特殊属性要赋值的注解在调用时,赋值语句可以简写格式:@注解名 (值)
例:@Rice (“apple”)
6.特殊注解可以赋初值,格式与普通属性一致
例: String value() default “apple”;
7.当有多个属性赋值时,特殊属性赋值语句不可简写,每个赋值语句之间用逗号,隔开

3.反射入门

3.1概念

1.什么时是反射?
反射是java语言的一种特性,一种特有的技术,这种技术使得程序在运行是可以获取程序对象的各种属性和方法.并且可以操作方法,域和构造器.包括被封装的方法
2.有什么作用:
1.可以用于获取类的各种信息.使我们了解类的功能作用
2.可以用于了解其他人编写的类的功能

3.2如何使用反射技术

1.获取字节码对象

三种方式:
1.Class.forName(String);–静态方法法,
2.类名.class()
3.对象.getClass();
注意:第一种使用会有个类找不到异常强制我们处理
常用方法:
获取类的相关信息的方法

getName();		--获取字节码对象对应的类的完整名称
getSimpleName();		--获取字节码对象对应的类的简单名称
getPackage();	 --获取字节码对象中类的包的对象 类型 名称
getPackage().getName(); 	--字节码对应的类的报的名称

获取类中的方法:

getMethods();	 --获取类中的方法,返回值一个Method类型的数组
方法对象.getName();		--获取方法的名称
方法对象.getParamterTypes();		--获取方法的参数类型,返回值是字节码对象

4.拓展 单元测方法

是java中的最小的测试单位.
语法:方法上加注解@Test 表示这是个单元测试方法
方法格式: public void 方法名 (无参){
需要测试的代码
}
注意:需要导包 选择导入包JUnit4的包

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

麻辣麻虾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值