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培训、期待与您交流! -------