黑马程序员JAVA高新技术(一)

来源:互联网 发布:jquery.ui.widget.js 编辑:程序博客网 时间:2024/05/14 07:09

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

静态导入

普通import导入一个类或者是某个包中的所有类

Import static 静态导入

导入类下的一个静态方法

使用时就可以省略类名

Math.abs

导入import static java.lang.Math.max;

可以直接写abs();

可变参数

只能出现在参数列表的最后

......位于变量类型和变量名之间,前后有无空格都可以

调用可变参数方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数

Public static int add(int x,int ....args){

Int sum = x;

For(int 1 = 0;i<args.length;i++)

Sum = args[i];

Return sum;

}

Syso(add(1,2,3,4,5));

增强for

For(type 变量名:集合)

享元模式

很多小的对象有很多属性相同把他们变成一个对象

不同的属性变成方法的参数,

枚举

枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则编译器就会报错,枚举可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无法实现这一目标

实现原理

每一个枚举都是一个对象

枚举定义构造方法

元素列表必须在方法之前

枚举的构造必须是私有的

反射

Class类大写的C

Java程序中的各个java类属于同一类事物,描述这类事物的java类名就是Class

得到类的字节码

类名.Class

对象.getClass()

Class.forName(“类名”)

反射就是把java类中的每个成分映射成相应的java

Constructor类就是代表某个类中的一个构造方法

得到某个类中所有的构造方法

Constructor[] con = Class.forName(“”).gerConstructor

得到某一个构造方法

Constructor[] con = Class.forName(“”).gerConstructor(StringBuff.class);

创建实例对象

一般方式

String str = new String(new StringBuffer(“abs”));

反射方式

String str = (String)constructor.newInstance(new StringBuffer(“abc”));

Class.newInstance()方法

String obj = (String)Class.forName(“java.lang.String”).newInstance;

该方法内部先得到默认的构造方法,然后用该构造方法创建实例对象

成员变量的反射

Field

获取成员变量的字节码

Field fieldy = 对象.getClass().getField(“要获取的变量名”);

获取成变量的值

fieldy.get(对象);

Method

反射调用方法

Method methodCHartAt = String.class.getMethod(“charAt”,参数);

methodCHartAt .incoke(对象,参数);

 

 

 

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

原创粉丝点击