java 1 5s_JAVA基础(1)

今天开始自己博客园的博客了,以前在新浪博客上有写过一些,但对比两者的体验,博客园的体验要比新浪高出不少。

这次主要是写Format这个大类,他是由三个子类提供实现DateFormat,NumberFormat,MessageFormat。以上的类都是抽象类,实现类提供工厂方法获取实例对象,(在本文最后简要说明一下工厂方法与实例方法)

DateFormat类:

Date date = newDate();

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= newScanner(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 staticPerson getInstance(){return newPerson();//这里可以改为 return new Player() / Writer(),当改为Writer()时要将方法返回类型改为Writer。通过加载Person类调用getInstance()创建Person实例。

}

}

Class PlayerextendsPerson{

}

Class WriterextendsPerson{

}

实例工厂方法:

就是先创建类对象,通过对象来调用创建实例对象的方法

public classHelloWorldFactory {publicHelloWorld createHelloWorld(){return newHelloWorld();

}

}

HelloWorldFactory helloFactory= newHelloWorldFactory();

helloFactory.createHelloWorld();

以上部分引用他人内容,感觉实例工厂方法与new 实例创建方法差不多。后查看资料才知道这两种方法在spring的bean的得到广泛使用,这要在以后再深入理解了。

工厂方法与实例方法部分援引自:https://blog.csdn.net/u012188107/article/details/54880415

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值