一.1---15集内容:java
①透视图(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循环spa
语法: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; }
⑤装箱拆箱code
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;