---------------------- android培训、java培训、期待与您交流! ----------------------
在定义主类的时候通常在class前面加上了public,当加了public时,文件名和类名要相同,如果省略public,文件名就可以和类名不同了!
门面设计模式(引用对象)。
内部类:一个类声明在另一个类的内部。内部类编译完生成class文件带"$"
好处:可以直接访问包装类(指外部类)的成员变量或成员方法。
可以把内部类设成私有的,只供自己使用。
何时使用:该类不允许或不需要其它类进行访问时。
System.exit(0);//0是正常退出,-1是非正常退出,结果一样。
匿名类写在方法里,也叫方法内的类,new 接口也可以,但本质上不是new接口,只是相当于是接口对象来使用。
何时使用:1、不是经常变动。2、语句比较少。
例1:静态方法调用,类名.方法名()。
System.out.println(Math.max(3,6));//3-6之间最大的数。
System.out.println(Math.abs(3-6));//3减6的绝对值。
例2:静态导入
//import static java.lang.Math.max;
import static java.lang.Math.*;
System.out.println(max(3,6));//3-6之间最大的数。
System.out.println(abs(3-6));//3减6的绝对值。
可变参数
可变参数可以解决一个方法接受的参数个数不固定。
特点:只能出现在参数列表的最后;
...位于变量类型和变量名之间,前后有无空格都可以;
调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。
overload(重载) vs override(重写)
例:
public static void main(String[] args){
System.out.println(add(2,3));
System.out.println(add(2,3,4,5));
}
//可变参数方法
public static int add(int x,int ... arrs){ //x=2; arrs[0]=3;
int sum=x;
for(int i=0;i<arrs.length;i++){
sum+=arrs[i]
}
return sum;
}
装箱和拆箱
把基本数据类型转换为引用类型称为装箱。Integer iObject=3;//给对象赋值
反之则称为拆箱。System.out.println(iObject+12);//引用类型对象与数据类型相加
享元模式(flyweight)
例:
Integer i1=37; //在-128--+127之间范围,会把出现的数据缓存到池里面,以便其它对象调用。
Integer i2=37; //小的数据使用的频率会很高。
Integer i3=137;
Integer i4=137;
System.out.println(i1==i2);//输出为:true;
System.out.println(i3==i4);//输出为:false;
享元模式,如果有多个小对象,而它们又有很多相同的地方,那就可以把它们变成一个对象,把不同的东西变成外 部的属性,作为方法的参数传入。
---------------------- android培训、java培训、期待与您交流! ----------------------