一.1---15集内容:
①透视图(perspective)和视图(view)的区别
②静态方法的导入
③参数数量可变的方法
System.out.println(add(2,3));
System.out.println(add(2,3,5));
publci static int add(int x,int ... args)
{
int sum=x;
for(int i=0;i<args.length;i++)
{
sum+=args[i];
}
return sum;
}
解释:本质为默认为args生成一个动态数组,以达到可以输入可变参数的效果。
④增强for循环
语法:for(type 变量名:集合变量名){ }
System.out.println(add(2,3));
System.out.println(add(2,3,5));
publci static int add(int x,int ... args)
{
int sum=x;
for(int arg:args)
{
sum+=arg;
}
return sum;
}
⑤装箱拆箱
public class AutoBox {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Integer iObj=3;//装箱(较早版本的Java里面不能这么写,因为3是int类型,iObj是一个包装类型Integer对象)
System.out.println(iObj+12);//拆箱
Integer i1=13;
Integer i2=13;
System.out.println(i1==i2);//测试i1和i2是否为同一个对象,这是在比较包装类型Integer对象内容,不是比较数值)
Integer i3=137;
Integer i4=137;
System.out.println(i3==i4);//测试i3和i4是否为同一个对象
//当数据值处于-128~127之间时,装箱时内部会将其封装成同一个对象,否则,封装成两个对象,这是一个享元模式【同享一个元】的的设计模式)
//享元模式:即一些小的使用频繁的同值对象会只产生一个对象,扩展的说,一些东西有些属性相同时,内存池中只会留下一个,这些特性是内部特性;那些不同属性成为外部特性
//享元模式:flyweight
Integer i5=Integer.valueOf(3);
Integer i6=Integer.valueOf(3);
System.out.println(i5==i6);
Integer i7=Integer.valueOf(213);
Integer i8=Integer.valueOf(213);
System.out.println(i7==i8);
//下面这两个不是自动装箱而是调用类Integer的静态方法,关于将对象放内存池的情况同上。
}
}
⑥枚举类的学习:
枚举元素就是一个枚举类的对象
public class EnumTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
WeekDay weekDay=WeekDay.FRI;
System.out.println(weekDay);
System.out.println(weekDay.name());
System.out.println(weekDay.ordinal());
System.out.println(WeekDay.valueOf("SUN"));
System.out.println(WeekDay.values().length);
}
public enum WeekDay{//定义一个枚举类WeekDay
SUN,MON,TUE,WED,THI,FRI,SAT
}
}
public class EnumTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
WeekDay weekDay=WeekDay.FRI;
System.out.println(weekDay);
System.out.println(weekDay.name());
System.out.println(weekDay.ordinal());
System.out.println(WeekDay.valueOf("SUN"));
System.out.println(WeekDay.values().length);
}
public enum WeekDay{//定义一个枚举类WeekDay
SUN(5),MON(),TUE,WED,THI,FRI,SAT;//这七个为枚举类的静态成员部分,只要使用一次枚举类,他们都会依次执行一遍,并且如果有其他东西,他们位于其他东西之前,且必须加上分;
//枚举类的构造方法必须为私有
private WeekDay(){System.out.println("First");}
private WeekDay(int day){System.out.println("Second");}
}
}
外部类只能使用默认或者public这两个修饰符,而内部类可是使用四种。
⑦反射(类Class,不是定义普通类的class)
a.Java程序中的各个Java类属于同一类事物,描述这类事物的Java类名就是Class,就是代表对象或者类的字节码
b.得到字节码的方法(Class类型):
①类名.class;
②对象.getClass();
③Class.forName("类名");
c.八种基本类型(boolean,byte,char,short,int,long,float,and double)和void类型都是一种类
例如:Class cls1=void.class;