标签:class imei get orm ret locale mini play 实现类
今天开始自己博客园的博客了,以前在新浪博客上有写过一些,但对比两者的体验,博客园的体验要比新浪高出不少。
这次主要是写Format这个大类,他是由三个子类提供实现DateFormat,NumberFormat,MessageFormat。以上的类都是抽象类,实现类提供工厂方法获取实例对象,(在本文最后简要说明一下工厂方法与实例方法)
DateFormat类:
Date date = new Date(); DateFormat datea = DateFormat.getDateInstance(); System.out.println(datea.format(date));//2019年2月2日 DateFormat dateb = DateFormat.getDateTimeInstance(); System.out.println(dateb.format(date));//2019年2月2日 上午11:26:22 DateFormat datec = DateFormat.getDateInstance(0, Locale.CHINA); System.out.println(datec.format(date));//2019年2月2日星期六 DateFormat dated = DateFormat.getDateInstance(DateFormat.DEFAULT,Locale.CANADA);//获取加拿大的格式化日期 System.out.println(dated.format(date));//Feb. 2, 2019 DateFormat datee = DateFormat.getTimeInstance(); System.out.println(datee.format(date));//上午11:26:22 DateFormat datef = DateFormat.getInstance(); System.out.println(datef.format(date));//2019/2/2 上午11:26
//如果上面找不到想要的格式,可以利用SimpleDateFormat类,其是DateFormat类的子类
SimpleDateFormat simpledate = new SimpleDateFormat("yy年MM月dd日 hh时mm分ss秒");
System.out.println(simpledate.format(date));
字母 | 日期或时间元素 | 示例 |
---|---|---|
y | 年 | 2015 |
M | 年中的月份 | 12 |
w | 年中的周数 | 50 |
W | 月份中的周数 | 02 |
D | 年中的天数 | 344 |
d | 月份中的天数 | 10 |
F | 月份中的星期 | 02 |
E | 星期中的天数 | 星期四、Thu |
a | AM/PM标记 | 下午、PM |
H | 一天中的小时数(0~23) | 21 |
k | 一天中的小时数(1~24) | 21 |
K | am/pm中的小时数(0~11) | 09 |
h | am/pm中的小时数(1~12) | 09 |
m | 小时中的分钟数 | 31 |
s | 分钟中的秒数 | 08 |
S | 毫秒数 | 716 |
NumberFormat类:
System.out.println("请输入一个数字:"); Scanner scan = new Scanner(System.in); System.out.println("该数字用Locale类的以下常量作为格式化对象的构造参数,将获得不同的货币格式:"); //NumberFormat类实现数字格式化,这个类的一个抽象类,可以通过其静态方法getCurrencyInstance()获取其实例对象,本实例获取了货币的实例对象 //NumberFormat format = NumberFormat.getCurrencyInstance(Locale.CHINA); double number = scan.nextDouble(); //抽象类+静态方法获取实例对象 NumberFormat format = NumberFormat.getCurrencyInstance(Locale.CHINA); System.out.println(format.format(number));//¥1,456.00 format=NumberFormat.getCurrencyInstance(Locale.JAPAN); System.out.println(format.format(number)); format = NumberFormat.getCurrencyInstance(Locale.US); System.out.println(format.format(number));
System.out.println("请输入百分数");
double persent = scan.nextDouble();
double a = persent/100;
format = NumberFormat.getPercentInstance();//输出百分数的形式
System.out.println(format.format(a));
NumberFormat
有两个具体实现子类DecimalFormat
和ChoiceFormat
DecimalFormat
同SimpleDateFormat类似,允许我们指定格式模式获取我们想要的格式化数值,DecimlFormat默认是3位小数,四拾伍入。
setMaximumFractionDigits(int newValue)
方法,设置小数部分中允许的最大数字位数setMinimumFractionDigits(int newValue)
方法,设置小数部分中允许的最小数字位数,如果原数小数位数不够的话,会补零。
setGroupingSize(int i)
方法,设置分组中一组的位数。setGroupingUsed(boolean value)
方法设置是否使用分组,true表示使用,false表示取消分组setMaximumIntegerDigits(int newValue)
方法设置整数部分允许的最大数字位数setMinimumIntegerDigits(int newValue)
方法设置整数部分允许的最小数字位数
实例化有3种方法 1、静态工厂方法 ,2构造器生成, 3、实例工厂方法
静态工厂方法:
顾名思义就是直接可以通过静态方法来实例化一个对象
如:
NumberFormat format = NumberFormat.getInstance();
(单例的写法多用静态工厂方法,好处1;方法有自己的名字,与new实例对比,当构造函数有多个,且参数相近时会容易混淆,这时静态工厂方法的优势就体现出来了。好处2:可以返回类型的子类
Class Person { public static Person getInstance(){ return new Person(); // 这里可以改为 return new Player() / Writer(),当改为Writer()时要将方法返回类型改为Writer。通过加载Person类调用getInstance()创建Person实例。 } } Class Player extends Person{ } Class Writer extends Person{ }
实例工厂方法:
就是先创建类对象,通过对象来调用创建实例对象的方法
public class HelloWorldFactory { public HelloWorld createHelloWorld(){ return new HelloWorld(); } } HelloWorldFactory helloFactory = new HelloWorldFactory(); helloFactory.createHelloWorld();
以上部分引用他人内容,感觉实例工厂方法与new 实例创建方法差不多。后查看资料才知道这两种方法在spring的bean的得到广泛使用,这要在以后再深入理解了。
工厂方法与实例方法部分援引自:https://blog.csdn.net/u012188107/article/details/54880415
标签:class imei get orm ret locale mini play 实现类
原文地址:https://www.cnblogs.com/changhe1995/p/10348788.html