1. 静态和非静态的区别
//非静态方法需要通过实例变量,再通过对象调用方法;Player p1=new Player(); p1.playSound(title)
//静态方法static不需要实例变量,可以直接用类的名字进行调用 Math.min(42,36)
***静态的方法不能调用非静态的变量和方法,非静态的可以调用静态的***
2. 限制调用
//抽象的类是不能被初始化的,被标记为private的方法只能被同一类的程序调用
//对于非抽象类,如果不想被调用或者初始化,就将构造函数限制为私有化
3. 静态变量
//静态变量对所有的实例来说是相同的,被同类的所有实例共享
//实例变量:每个实例一个;静态变量:每个类一个
//static变量是通过类的名称来存取,并且在类的任何对象或方法执行之前就被初始化
常数——静态的final变量:public static final PI=3.141592653;常数命名应该全部大写,并以_为字符分割;它的初始化在声明的时候,或者静态初始化程序中(1):变量标记为public,可以被各方读取
(2):变量标记为static,所以不需要实例化
(3):变量标记为final,所以这个值是不变的
4. final
//静态final变量——常量;不能改变,不需要实例化,直接通过类调用
//final的变量(包括静态和非静态);不能改变值
//final的方法;不能覆盖掉该方法
//final的类;改类不能被继承,即不能创建子类
如果该类已经被final了,则不要对方法再final了。
5. 数字格式化
format("This num is %,6.2f",10042.000);%后的逗号表示数字以,分割 6表示宽度至少为6,不足补零;2精确到小数点后两位,f表示浮点型
%d——int;%f——浮点型;%x——byte,short,int,long,BigInteger;%c——byte,short,int,long
日期:——获得当前日期用Date
Sting.format("%tc",new Date());//完整的时间和日期 Sun July 8 14:52:41 MST 2018 Sting.format("%tr",new Date());//只有时间 14:52:41 PM Date today=new Date(); Sting.format("%tA,%tB %td",today,today,today);//周 月 日 Sunday July 8 Sting.format("%tA,%<tB %<td",today);//同上,但是可以重复利用参数;周 月 日 Sunday July 8
其余的都在Calendar上找,且用静态的方法,即不能直接实例化
Calendar cal=new Calendar();//错误的 Calendar cal=Calendar.getInstance();//正确的,获取时间Calendar中日期字段会保存、日期和时间可以运算,可以转换为millisecond微秒来运算
cal.set(2018,7,8,10,23)
cal.getTimeInMillis(day1)
Calendar c = Calendar.getInstance();//正确的,获取时间
c.set(2018,7,8,10,23);//日期设定为2018年7月8日10:3
long day1 = c.getTimeInMillis();//日期转换为毫秒
day1++1000*60*60;
c.setTimeInMillis(day1);日期加一个小时
System.out.println("new hour"+c.get(c.HOUR_OF_DAY));
c.add(c.DATE,35);//日期加35天
System.out.println("add 35 days"+c.get(c.getTime));
c.roll(c.DATE,35);//滚动35天,只有日期字段会动,月份不会动
System.out.println("roll 35 days"+c.get(c.getTime));
c.set(c.DATE,1);//直接设定DATE值
System.out.println("set to 1"+c.get(c.getTime));