码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA基础(1)

时间:2019-02-02 19:28:19      阅读:224      评论:0      收藏:0      [点我收藏+]

标签: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有两个具体实现子类DecimalFormatChoiceFormat

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

JAVA基础(1)

标签:class   imei   get   orm   ret   locale   mini   play   实现类   

原文地址:https://www.cnblogs.com/changhe1995/p/10348788.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!