JAVA 学习随笔记录 (七)JAVA常用类、枚举类型

目录

 

包装类的概念

Interger类:

 Number类

Math类

 Date类

枚举类型


包装类的概念

JAVA为了可以使基本数据类型当作对象处理,提出了包装类的概念,把JAVA中的8个基本数据类型包装成相应的类,就可以通过对象调用各自包装类中许多常用的方法。

基本数据类型 对应的包装类
int Byte
byte Interger
float Float
char Character
short Short
long Long
double Double
boolean Boolean

Interger类:

java.lang包中的Byte、Interger、Short、Long类,分别是对应基本数据类型的包装类,且其均是Number类的子类,故只解释一种。

1.构造方法

Interger(int number)

例:Interger id=new Interger(7);                         //int id=7;

 Interger(String str)

例:Interger id=new Interger("45");

 2.常用方法

方法 返回值类型 功能描述
valueOf(String str) Interger 返回String型参数值的interger对象
parseInt(String str) int 将String转换为int 
toString() String 返回一个表示interger值的String对象
toBinaryString(int i) String 返回String型的二进制
toHexString(int i) String 返回String型的十六进制
toOctalString(int i) String 返回String型的八进制
equals(Object intobj) boolean 判断是否相等
intValue() int int型返回此对象
shortValue() short short型返回此对象
byteValue() byte byte型返回此对象

例:常用方法展示:

package unit2;

public class Demo {
    public static void main(String args[]) {
        int num=Integer.parseInt("456");
        Integer inum=Integer.valueOf("456");
        System.out.println("int型数据与integer对象的比较:"+inum.equals(num));
        String str=Integer.toBinaryString(num);
        String str1=Integer.toHexString(num);
        String str2=Integer.toOctalString(num);
        String str3=Integer.toString(num, 15);
        System.out.println("456的二进制表示:"+str);
        System.out.println("456的十六进制表示:"+str1);
        System.out.println("456的八进制表示:"+str2);
        System.out.println("456的15进制表示:"+str3);
    }
}

 执行结果如下:

 3.常量

Integer类提供了以下四个常量:

MAX_VALUE

MIN_VALUE

SIZE

TYPE

 Number类

Number类是一个抽象类,它是Byte,Integer,Short,Long,Float,Double类的父类,要把Number类的子类对象转换为对应的基本数据类型,需要使用它的方法:

例:byteValue()可将参数转换为byte类型

Math类

Math类在java.lang中,表示数学类,可以提供给我们很多的数学计算方式,同时也提供了一些常量的值,比如圆周率等。,调用语法格式如下:

Math.数学方法

Math.常量名

1.常用函数方法

方法 返回值 功能描述
exp(double a) double 用于获取e的a次方
double log(double a) double 取自然对数,即lna
double log10(double a) double 取对数,即log10a
sqrt(double a) double 取a的平方根
cbrt(double a) double 取a的立方根
pow(double a,double b) double 用于取a的b次方

2.取整函数方法

方法 返回值 功能描述
ceil(double a) double 返回大于或等于参数的最小整数
floor(double a) double 返回小于或等于参数的最大整数
rint(double a) double 返回与参数最接近的整数,两数一样取偶数
round(float a) int  参数加上0.5后返回最接近,转换int
round(double a) long 参数加上0.5后返回最接近,转换long

3.取最大值、最小值、绝对值函数方法

方法 返回值 功能描述
max(double a,double b) double 取两者之间最大者
min(double 两者之间最小者a,double b) double
abs(int a) int 返回整型参数的绝对值

Random类

Random类在java.util包中包含,通过实例化一个Random类对象可以创建一个随机数生成器

Random r=new Random();

方法 返回值 功能描述
nextInt() int 返回一个随机int型值
nextInt(int n) int 返回一个大于等于0且小于n的随机int值
nextLong() long 返回一个随机long型值
nextBoolean() boolean 返回一个随机bool型值
nextFloat() float 返回一个随机float值
nextDouble() double 返回一个随机double型值
nextGaussian() double 返回一个概率密度为高斯分布的double值

例:模拟抢红包小程序获得随机金额

package unit2;

import java.util.Random;
import java.util.Scanner;

public class RedBags {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("_____________模拟抢红包软件____________");
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入您要发的红包大小数目:");
        double total=sc.nextDouble();
        System.out.println("请输入选择的红包个数:");
        int piece=sc.nextInt();
        double min=0.01;
        Random random=new Random();
        if(total/piece==0.01) {
            for(int i=1;i<piece;i++) {
                double money=min;
                
                total-=0.01;
                System.out.println("第"+i+"个红包的金额为"+money+"元");
            }
        }
        else if(total/piece<0.01) {
            System.out.println("要保证每个人最少分得0.01元哦!");
        }
        else {
            for(int i=1;i<piece;i++) {
                double Max=total-(piece-i)*min;
                double bound=Max-min;
                double safe=(double)random.nextInt((int)(bound*100))/100;
                double money=safe+min;
                total-=money;
                if(money<0.1) {
                    System.out.println("运气太差了!");
                System.out.println("第"+i+"个红包的金额为"+money+"元");
            }
                else {
                System.out.println("第"+i+"个红包的金额为"+money+"元");
                }
        }
        }
        System.out.println("第"+piece+"个红包的金额为"+total+"元");
sc.close();
}
}

 Date类

Java中的java.util包中提供了Date类来操作日期和时间,首先应该先实例化一个Date类的对象

用法有两种:

1.Date date=new Date();

2.long time=system.currentTimeMillis();              //获取系统当前时间据基准时间的毫秒数

Date date=new Date(timeMillis);

常用方法:

方法 返回值 功能描述
after(Date when) bool 测试当前日期是否在指定日期之后
before(Date when) bool 测试当前日期是否在指定日期之前
getTime() long 获得自基准时间到现在的毫秒数
setTime(long time) void 设置当前对象所表示的日期时间值

同时我们还可以使用

DateFormat df=DateFormat.getDateInstance();

类中提供了四种默认风格: SHORT、MEDIUM、LONG、FULL

枚举类型

枚举类型常被用于设置常量,语法格式如下:

enum Constants{

Constants_A,Constants_B

}

 由于使用普通常量声明,会导致编译器不会对语意进行报错,只会对语法进行报错。

例:

    public static int monday=1;
    public static int Tuesday=2;
    public static int Wednesday=3;
    public static int Thursday=4;
    public static int Friday=5;
    public static int Saturday=6;
    public static int Sunday=7;

public int Day;

 我只想让Day在周一至周日取值,可是当我输入让Day取值为55,语法上也成立,故我们应该使用枚举来完成这件事

例:

package unit2;

public enum Today {
monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday;
}

Today td;          //实例化一个枚举类型

td=Today.monday;   //让该枚举类型取值

EnumMap<Today, String> map=new EnumMap<>(Today.class);
        map.put(cl, "MONDAY");
        map.put(cl2, "SUNDAY");
        map.put(cl3, "FRIDAY");

发布了15 篇原创文章 · 获赞 8 · 访问量 920

猜你喜欢

转载自blog.csdn.net/caicai779369786/article/details/90177857