1.构造函数私有化
class Accum{
private static Accum a = new Accum();//构造静态实例
private int counter = 0;
private Accum(){} //构造函数私有化
public static Accum getAccum(){//让外部的类通过此法调用Accum的实例
return a;
}
public void updateCounter(int add){
counter +=add;
}
public int getCount(){
return counter;
}
}
class ThreadOne implements Runnable{//+1000的线程
Accum a = Accum.getAccum();
构造函数私有化的目的其实是为了单例化,想让对于Accum此类的实例限制为一个,其他外部的类都只能对这一个类进行操作
其中Accum a = Accum.getAccum()包含了静态的知识点
类的静态函数可以使用类名直接加方法名的方式调用。
他是属于类的函数,是所有对象共有的函数,不是属于某个对象的。对于这种函数的调用就需要使用类名加函数名的方式调用
2.toString()是定义在Object这个类中,所以Java中每个类都有继承到,而且对象被System.out.println(anObject)列出来时会被调用toString()所以有时候你可以自己写一个toSting()让当对象被调用时能显示出你希望看到的属性。
HeightCompare hi = new HeightCompare();
Collections.sort(mtn,hi);//列出mtn集合中的对象并用hi定义好的方式进行排序
System.out.println("by height:\n"+mtn);
}
}
class Mountain{//定义将要加入到List集合中的类
String Name;
int Height;
Mountain(String n,int h){
Name = n;
Height = h;
}
public String toString(){
return Name +" "+Height;
}
}