黑马程序员———JDK1.5新特性

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


 

IDE:集成开发环境: integrated development environment

工程可以导入  import  
如果导入的工程,jdk和jre不同,就删除掉原有的,配置上自己的.BuildPath
 
add librrary  建立库。库内可以放很多jar包。

建立新文件,记得写上包名,假设是华为面试题,则
建立包名:huawei。

jdk1.5的语法:
静态导入:
import static java.lang.Math.*;
sop(max(3,6));
sop(abs(3-6));   -->Math.abs(3-6);


可变参数:

public static int add(int x, int... args)
{
 int sum=x;
 for(int i=0;i<args.length;i++)
 (
  sum +=args[i];
 )
 return sum;
}

overload   vs   override面试问题


增强for循环:


for(type 变量名: 集合变量名){....}
注意事项:
 迭代变量名必须在()内中定义。
 集合变量可以是数组或实现了Iterator接口的集合类。
type前可以加修饰符,如final  ,这样就可以让内部类引用。

public static int add(int x;int ... args)
{
 int sum=x;
 for(int i: args)
 {
  sum+=args;
 }
}

 

========================================

枚举:
 * 枚举就是要让某个类型的变量的取值只能为若干个固定值中的一个,否则,编译器就会报

错。枚举
 * 可以让编译器在编译时就可以控制源程序中填写的非法值,普通变量的方式在开发阶段无

法实现这一目标。
 *
 * 用普通类如何实现枚举功能,定义一个Weekday的类来模拟枚举功能。
 * 私有的构造方法。
 * 每个元素分别用一个公有的静态成员变量表示。
 * 可以有若干公有方法或抽象方法,例如:要提供nextDay方法必须是抽象的。
 *
 *
 * 枚举相当于一个类,其中也可以定义构造方法,成员变量,普通方法和抽象方法。
 * 枚举元素必须位于枚举体内中的最开始部分,枚举元素列表的后面必须要有分号与其他成

员分隔。把枚举中的成员方法或变量等放在枚举元素的前面,编译器会报告错误。
 *
 * 带构造方法的枚举:
 *  构造方法必须定义为私有。
 *  如果有多个构造方法,该选择哪个?
 *  枚举元素MON和MON()效果一样,调用的都行默认的构造方法。
 *
 * 带方法的枚举
 * 定义枚举TrafficLamp  交通灯
 * 实现普通的next方法:
 * 实现抽象的next方法:每个元素分别是由枚举类的子类来生产实例对象,这些子类采用类

似内部类的方式进行定义。
 * 增加上表示时间的构造方法。
 *
 * 枚举只有一个成员时,就可以作为一种单例的实现方式。

============================================================

反射的基石----Class类
代表一类事物:


得到一个类的字节码:
1Date类名
Data.class

2对象.getClass();
Person p1=new Person();
p1.getClass();

3.Class.forName("类名");
Class.forName("java.lang.String");
返回类的字节码,


九个预定义Class实例对象:
参看Class.isPrimitive方法的帮助。
Int.class==Integer.TYPE
数组类型的Class实例对象:
Class.isArray()
总之,只要是在源程序中出现的类型,都有各自的Class实例对象,例如:int[]  void ...


反射就是把Java类中的各种成分映射到相应的java类。
例如:一个Java类中用一个Class类的对象来表示,一个类中的组成部分来表示,就像汽车是

一个类,汽车中的发动机,变速箱等等也是一个个
的类。表示java类的Class类显然要提供一系列的方法,来获得其中的变量,方法,构造方法

,修饰符,包等信息

这些信息就是用相应类的实例对象来表示,他们是
etField(),  Method;  Constructor   Package  

一个类中的每个成员都可以用相应的反射API类的一个实例对象来表示,通过调用Class类的

方法可以得到
这些实例对象后,得到这些实例对象有什么用呢?怎么用呢?这正是学习和应用反射的要对

点。
System.exit()
System.getProperities();

Method-->methodObj1
 methodObj2

反射API的价值和作用通过综合案例分析:


Constructor类代表某个类中的一个构造方法
得到某个类所有的构造方法:
例子:Constructor[] constructors=Class.forName

("java.lang.String").getConstructors();

得到某一个构造方法:
例子:Constructor constructor=Class.forName("java.lang.String:).getConstructor

(StringBuffer.class);
//获得方法时要用到类型

创建实例对象:
通常方式:String str=new String(new StringBuffer("abc"));
反射方式:String str=(String)constructor.newInstance(new StringBuffer("abc"))
//调用获得的方法时,要用到上面相同类型的实例对象。

Class.newIstance()方法:
例子:String obj=(String)Class.forName("java.lang.String")newInstance();
该方法内部先得到默认的构造方法,然后用该构造方法创建实例对象。
该方法内部的具体代码是怎样写的?用到了缓存机制来保存默认构造方法的实例对象。

一个类中有多个构造方法,用什么方式可以区分清楚想得到其中的哪个方法me?根据参数的

个数和类型。例如:Class.getMethod(name,Class...args)的
args参数就代表所要获取的那个方法的各个参数的类型的列表。重点:参数类型用
什么方式表示?用Class实例对象。例如:
int.class, (int[]).class
int[] ints=new int[0];
ints.getClass();

 

 

 

 

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


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值