黑马程序员(十)反射机制和单例设计模式

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

反射机制

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法 的功 能称为java语言的反射机制。

反射:在程序运行时期,是通过class文件对象,去使用构造方法,成员变量,成员方法。


      获取class文件对象

            1:Object类的getClass()方法

           2:数据类型的静态的class属性

           3:Class类forName()静态方法

           一般开发使用第三种。


 反射的应用

          1:通过反射获取构造方法并使用


                 //获取字节码文件对象

                 Classc = Class.forName("cn.itcast.Person");

 

                 //获取构造器对象

                 Constructorcon = c.getDeclearedConstrator(String.class,int.class);

 

                 //通过构造器对象获取Person对象

                 Objectobj = con.newInstance("小明",29);

 

           2:通过反射获取成员变量并使用


                 //获取字节码文件对象

                 Classc = Class.forName("cn.itcast.Person");

 

                

                 //获取构造器对象

                 Constructorcon = c.getDeclearedConstrator(String.class,int.class);

 

                 //通过构造器对象获取Person对象

                 Objectobj = con.newInstance("小明",29);

 

 

                 //获取成员变量

                 Fieldfield = c.getDeclaredField("name");

                 field.setAccessiable(true);

                 field.set(obj,"小明");


           3:通过反射获取成员方法并使用


                 //获取字节码文件对象

                 Classc = Class.forName("cn.itcast.Person");

 

                 //获取构造器对象

                 Constructorcon = c.getDeclearedConstrator(String.class,int.class);

 

                 //通过构造器对象获取Person对象

                 Objectobj = con.newInstance("小明",29);

 

                 //获取所有公共方法对象,包括从父类继承的

                 //(获取本类所有方法的时候,不包括从父类继承的)

                 Method[]methods = c.getDeclaredMethods();

                 for(Methodm : methods){

                      m.setAccessiable(true);

                      m.invoke(obj,null);

举例:反射越过泛型检查


正则表达式

定义:符合某种规则的字符串

    

   常用功能:

          1:判断功能

                String-- matches

          2:切割功能

               String-- split

           3:替换功能

                 String-- replaceAll

          4:获取功能

                 Pattern

                Matcher

                compile()

                 find()

                group()

     常用的正则规则

(1):特殊字符

\\:反斜线

\r:回车

\n:换行

 

(2):字符类

[abc]:a,b或者c的任意一个。

[^abc]:除了a,b,c以外的字符。

[a-zA-Z]:包括了26个英文字母。

[0-9]:包括了0-9这个10个数字字符。

 

(3):预定义字符类

.     任意字符

\d   数字[0-9]

\D   非数字[^0-9]

\w  单词字符:[a-zA-Z_0-9]

\W  非单词字符:[^\w]

(4):边界匹配器

^    行的开头

$    行的结尾

\b   单词边界

(5):Greedy 数量词

x?  0次或1次

x*  0次或多次

x+  1次或多次

x{n} 恰好n次

x{n,} 至少n次

x{m,n} 至少m次,但不能超过n次


应用:用于校验邮箱 电话号码等



单例设计模式

定义:就是指类在内存中只能有一个对象存在

举例:Windows的打印服务,网站的计数器

应用:线程池,数据库连接池

设计一个懒汉式单例设计模式:

设计一个饿汉式单例设计模式:



黑马程序员 设计模式c 是指黑马程序员通过C语言实现设计模式的一门课程。设计模式是面向对象设计中经过实践和总结后的一种解决问题的方案。它是一种具体的设计思路,是编写高质量、易于理解、可维护和可扩展的代码的指导原则。在软件开发中,我们经常会遇到各种各样的问题,设计模式可以帮助我们更加灵活高效地解决这些问题。 黑马程序员设计模式C课程从理论讲解到实践操作,通过C语言来实现各种设计模式,帮助学员理解设计模式的原理和应用场景。通过学习该课程,学员可以提升自己的设计能力和编程水平,使得自己编写的代码更加优雅和可复用。 该课程主要包括以下几个部分:首先是介绍设计模式的基本概念和分类;然后是详细讲解每一种设计模式的原理、结构和应用场景;接着是通过具体的案例来演示如何在C语言中实现每一种设计模式;最后是实际项目实战,让学员能够将所学的设计模式应用到实际的软件开发中。 通过学习黑马程序员设计模式C课程,可以帮助开发人员更好地理解和应用设计模式,提高软件开发的质量和效率。无论是对于初学者还是有一定经验的开发人员来说,都可以从中获得实际的收益。设计模式是编写高质量代码的基石,掌握设计模式可以让我们在编程过程中更加得心应手,实现代码的可维护性和可扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值