Java中的部分类的理解

在Java的标准类库中为我们提供了很多标准的工具类,可以通过Java的API查到这些类,及其用法
1.基本类型的包装类
 这是最简单的一种工具类,它对基本类型进行封装,使得我们可以方便的对基本类型进行各种操作,具体如下:
      基本类型 包装类类型
       byte   Byte
       short      Short
       int   Integer
       long   Long
       float      Float
       double  Double
       char   Character
       boolean  Boolean
 针对这么多包装类,我们举几个例子说明其用法;
 A.Integer类
  ·所有已实现的接口:
   Serializable, Comparable<Integer>   
   public final class Integer extends Number implements Comparable<Integer>Integer 类在对象中包装了一个基本类型 int 的值。Integer 类型的对象包含一个 int 类型的字段。
   此外,该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法。
  ·构造方法:
   Integer(int value)
   Integer(String s)
    注意:这里的字符串必须是由数字组成的字符串
  ·各种成员方法:
   转换为二进制:toBinaryString(int i)
   转换为八进制:toOctalString(int i)
   转换为十六进制:toHexString(int i)
  ·int和String类型的相互转换:
   A.int -- String
    方式1:
    String s = 100 +"";
    方式2:
    String.valueOf(int)
    方式3:
    Integer.toString(100);    
   B.String -- int
    方式1:
    Integer.parseInt(String)
  ·自动装箱:基本类型 -- 包装类类型
     Integer.valueOf(100)
    ·自动拆箱:包装类类型 -- 基本类型
     i.intValue()
  还有许多有趣的方法可以参考API学习
 B.Character类 
  ·所有已实现的接口:
   Serializable, Comparable<Character>
   public final class Character extends Object implements Serializable, Comparable<Character>
   Character类在对象中包装一个基本类型 char 的值。Character 类型的对象包含类型为 char 的单个字段。
   此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然。
  ·构造方法:
   public Character(char value)
  ·成员方法
   public static boolean isUpperCase(char ch) 判断是否是大写字符
   public static boolean isLowerCase(char ch) 判断是否是小写字符
   public static boolean isDigit(char ch) 判断是否是数字
   public static char toUpperCase(char ch) 转成大写
   public static char toLowerCase(char ch) 转成小写
   
   其他基本类型可参考API学习
  这里有一个简单的案例:          )
   需求:键盘录入一个字符串中大写字母字符,小写字母字符,数字字符出现的次数。(不考虑其他字符) 
    import java.util.*;
    public class TrialBigChar {
     public static void main(String[] args) {
      System.out.println("Input String:");
      Scanner sc = new Scanner(System.in);
      String str = sc.nextLine();
      
      trialBig(str);
      
      sc.close();
     }
     public static void trialBig(String str){
      char[] arr = str.toCharArray();
      int bigMount = 0;
      int smallMount = 0;
      int DigitMount = 0;
      int errorMount = 0;
      
      for(int i=0; i<arr.length; i++){
       if(Character.isUpperCase(arr[i])){
        System.out.println(arr[i] + " is BIG" + " ");
        bigMount++;
       }else if(Character.isLowerCase(arr[i])){
        System.out.println(arr[i] + " is SMALL" + " ");
        smallMount++;
       }else if(Character.isDigit(arr[i])){
        System.out.println(arr[i] + " is DIGIT" + " ");
        DigitMount++;
       }else{
        System.out.println("error:input error!");
        errorMount++;
       }
      }
      System.out.println("bigMount: " + bigMount + ";" + "smallMount: " + smallMount
       + ";" + "DigitMount: " + DigitMount + ";" + "errorMount: " + errorMount);
     }
    }
2.Math类
 定义:用于执行数学运算的类。
  成员方法:
   public static int abs(int a)
   public static double ceil(double a)//向上取整
   public static double floor(double a)//向下取整
   public static int max(int a,int b) min自学
   public static double pow(double a,double b)  a的b次方
   public static double random()返回带正号的 double 值,该值大于等于 0.0 且小于1.0。
   public static int round(float a)返回最接近参数的int值  
3.Object类
 是所有类的根类,所有的类都直接或间接的继承于它
 一般的我们要对其中的部分方法进行重写以满足我们实际开发需要;如
 ·toString();Object类的 toString()方法是对对象的引用进行打印,即(类名+@+哈希码值)
    getClass().getName() + '@' + Integer.toHexString(hashCode())
 ·equals();默认情况下,比较的是地址值。没有意义。所以,建议子类重写该方法。
 · ==和equals()的区别?z
   A:==的作用
    a:基本类型 数据值
    b:引用类型 地址值
   B:equals()
    只能比较引用类型。默认比较地址值。
    如果重写后,是按照重写后的规则进行的。   
4.Scanner类
 这个类可以帮助我们获取键盘录入数据
 构造方法:
    Scanner(InputStream source)
    
    Scanner sc = new Scanner(System.in);
 
    System.in in是System类下面的一个静态的成员变量。
    现在我们并不知道in这个成员变量的数据类型。
  请看一下伪代码:
    Scanner {
     public Scanner(InputStream in){}
    }
 
    System {
     public static final InputStream in;
    }
    InputStream System.in
 
 成员方法:
    int nextInt():获取int类型的数据
    String nextLine():获取String类型的数据
    
5.Random类   
 Random:用于产生随机数的类。和种子相关(种子其实可以把它看成一个产生随机数的定义的规则)。
 
 构造方法:
   Random():没有指定种子,采用的是默认种子。
   Random(long seed):可以指定种子。种子相同,产生的随机数就相同。
 成员方法:
   public int nextInt():返回int范围内的数据
   public int nextInt(int n):返回[0,n)之间的数据
  
 得到1-100之间的随机数:
   new Random().nextInt(100) + 1
 种子其实是用于随机数生成器的初始化值,随机数生成器对于特定的种子值总是产生相同的随机数序列
6.System类  
   System 类包含一些有用的类字段和方法。它不能被实例化。
 
    成员方法:
    public static void exit(int status):终止当前正在运行的 Java 虚拟机。根据惯例,非 0 的状态码表示异常终止。
    public static long currentTimeMillis():获取当前时间的毫秒值。
    public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length):复制数组
    参数一:要复制的源数组
    参数二:从源数组那个索引开始复制
    参数三:需要复制到哪个数组中
    参数四:从哪个索引开始进行覆盖
    参数五:需要覆盖几个元素  
7.Date类   
   Date:类 Date 表示特定的瞬间,精确到毫秒。
 
   构造方法:
   Date():默认获取的是当前的日期时间
   Date(long date):把当前日期按照指定的毫秒值进行设定
  
   成员方法:
   public long getTime():获取日期对象的毫秒值
   public void setTime(long time):设置日期对象的毫秒值   
8.DateFormat类
  用于格式化和解析日期对象
  格式化:
    Date --  String
     2015年9月27日 15:14:23
 
   String format(Date d)
 
  解析:
    String --  Date
     "2015-12-12" 
 
   Date  parse(String s)  
  
   构造:
   SimpleDateFormat()用默认的模式格式化日期对象
   SimpleDateFormat(String pattern):用给定的模式格式化日期对象
   例如:
   yyyy年MM月dd日 HH:mm:ss
   yyyy-MM-dd HH:mm:ss
  
   成员方法:
   public final String format(Date date)将一个 Date 格式化为日期/时间字符串
   public Date parse(String source)throws ParseException从给定字符串的开始解析文本,以生成一个日期对象 
 
 这里有一个案例可以灵活用到Date和DateFormat类
  键盘录入出生日期,算一下你来到这个世界多少天?实现代码如下:
   import java.text.ParseException;
   import java.text.SimpleDateFormat;
   import java.util.*;
   public class BirthTest {
    public static void main(String[] args) throws ParseException{
     Scanner sc = new Scanner(System.in);
     System.out.println("请输入您的出生日期(如:1997-10-01)");
     String date = sc.nextLine();
   //  System.out.println(date);
     
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
     Date myDay = sdf.parse(date);
   //  System.out.println(myDay);
     long myTime = myDay.getTime();
     System.out.println(myTime);
     long nowTime = System.currentTimeMillis();
     long time = nowTime - myTime;
     
     long day = time/1000/60/60/24;
     
     System.out.println("您来到世上:" + day + "天");
     
     sc.close();
    }
   }
9.Calendar类    
    Calendar:它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法
 
    Calendar(日历类) -- 获取年,获取月,获取日,获取时,获取分,获取秒。
    public int get(int field):返回给定日历字段的值  
    public void add(int field,int amount):根据amount修改field的值
    public void set(int year,int month,int date):设置当前日历的年月日 
  案例:键盘录入年份,获取任意一年的二月有多少天
   import java.util.*;
   //键盘录入年份,获取任意一年的二月有多少天
   public class JanurDay {
    public static void main(String[] args) {
     System.out.println("请输入年份:");
     Scanner sc = new Scanner(System.in);
     int year = sc.nextInt();
     
     Calendar c = Calendar.getInstance();
     c.set(year, 2, 1);
     c.add(Calendar.DATE, -1);
     System.out.println("该年二月有:" + c.get(Calendar.DATE));
    }
   }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值