Java第九章总结 Java常用类

目录

9.1 包装类

9.1.1 Ingeter 类

9.1.2 Double 类

9.1.3 Boolean 类

9.1.4 Character 类

9.1.5 Number 类

9.2 Math 类

9.2.1 Math类概述

9.2.2 常用数学运算方法

9.3 随机数

9.3.1 Math.random()方法

9.3.2 Random 类

9.4 日期时间类

9.4.1 Date 类

9.4.2 Calendar


9.1 包装类 

Java是一种面向对象的语言,但在Java中不能定义基本数据类型的对象,为了能将基本数据类型是为对象进行处理,Java提出了包装类概念,它主要是将基本数据类型封装在包装类中,如:int型数值的包装类Integer,boolean型的包装类Boolean等,这样便可以把这些基本数据类型转换为对象进行处理。Java基本数据类型如下:

                                          包装类及其对应的基本数据类型

                                                                             注意:包装类的开头字母是大写的,包装类

包装类                                    对应基本数据类型                   都在java.lang包中          

Byte                                       byte (整数类型)

Integer                                   int    (整数类型)

Float                                      float    (小数类型)                 都是Number类

Short                                     short (整数类型)

Long                                      long  (整数类型)

Double                                  double  (小数类型) 

Character                              char

Boolean                                boolean(布尔类型) 

作用:  1. 存储数据              2. 提供数据类型的安全转换机制


说明: Java 是可以直接处理数据类型的,但在有些情况下需要将其作为处理对象来处理,这时就需要将其转换为包装类这里的包装类相当于基本数据类型和对象类型的一个桥梁。

由于包装类和基本数据类型间的转换引入了装箱和拆箱的概念:装箱就是将基本数据类型装换为包装类,而拆箱就是将包装类装换为基本数据类型。(理解)

9.1.1 Ingeter 类

1. 构造方法

Integer类有以下两种构造方法。

(1)Integer(int number)

该方法以一个int型变量作为参数来获取Integer 对象。

eg: 以int型变量作为参数创建Integer对象,代码如下:

Integer number = new Integer(7);

(2) Integer(String str) 

该方法以一个String型变量作为参数来获取Integer 对象。

eg: 以String型变量作为参数创建Integer对象,代码如下:

Integ er number = new Integer("45"); 

注意:如果使用字符串变量创建Integer对象,字符串变量的值一定要是数值型,如"123",否则将会抛出NumberFormatException异常。 

自动拆装箱:

包装类在存储数据时,通过情况下使用的构造器进行赋初始值,获取数据时,调用相应的方法获得存储的数据值。

什么是自动拆装箱

装箱 : 会将数据自动存入到对象中

拆箱 : 会将数据自动从对象中取出

2. 常用方法

                Ingeter类的常用方法

方法

返回值

功能描述

ValueOf(String str)

Integer

返回保存指定的String 值的Ingeter对象

ParseInt(String str)

String

返回包含在由str 指定的字符中的数字的等价整数值

ToString( )

String

返回一个表示该Integer 值的String 对象(可以指定进制基数)

ToBinaryString(int i)

String

以二进制无符号整型形式返回一个整数参数的字符串表示形式

ToHexString(int i)

String

以十六进制无符号整型形式返回一个整数参数的字符串表示形式

ToOctalString(int i)

String

以八进制无符号整型形式返回一个整数参数的字符串表示形式

Equals(Object IntegerObj)

boolean

比较此对象与指定的对象是否相等

IntValue( )

int

以int型返回此 Ingeter 对象

ShortValue( )

short

以short型返回此 Ingeter 对象

ByteValue( )

byte

以byte 型返回此 Ingeter 对象

CompareTo(Ingeteranother Ingeter)

int

在数字上比较两个Integer 对象。如果这两个值相等,则返回0,如果调用对象的数值小于 anotherIngeter 的数值, 则返回负值; 如果·调用对象的数值大于 anotherIngeter 的数值,则返回正值

举个栗子:

    创建一个Demo类,其中首先使用Integer类的parseInt 方法讲将一个字符串转换为int数据,然后创建一个Integer对象,并调用其equals 方法与转换的int数据进行比较; 最后演示使用Integer 类的toBinaryStrin方法,toHexString方法,toOctalString 方法和  

9.1.2 Double 类

9.1.3 Boolean 类

9.1.4 Character 类

9.1.5 Number 类

9.2 Math 类

java.lang.Math 提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double 型。 如果需要更加强大的数学能力, 计算高等数学中的相关内容, 可以使用apache commons 下面的Math 类库。

9.2.1 Math类概述

Java中提供了一个执行数学基本运算的Math类,该类包括常用的数学运算方法,如三角函数方法,指数函数方法,对数函数方法,对数函数方法,平方根函数等一些常用方法,此外还提供了一些常用数学常量,如PI,E等。如下讲解。

Math类表示数学类,它位于java.lang包中,由系统默认用,该类中提供了众多数学函数方法,主要包括三家函数方法,指数函数方法,取最大值,最小值以及绝对值函数方法,这些方法都被定义为static形式,因此在程序中可以直接通过类名进行调用。使用形式如下:

Math. 数学方法

在Math类中除了函数方法之外还存在一些常用的数学常量,如PI, E等, 这些数学常量作为 Math 类成员变量出现,调用起来也很简单。 可以使用如下形式调用:

Math.PI           //表示圆周率PI的值

Math.E            //表示自然对数底数e的值

例如,下面代码用来分别输出PI和E的值。

System.out.println("圆周率Π的值为:" + Math.PI) ;

System.out.println("自然对数底数的值为: " Math.E);

上面代码的输出结果为:

圆周率Π的值为: 3.141592653589793

自然对数底数e的值为 :2.718281828459045

eg  :

public class TestMath  {
    public static void main (String[] args)  {
         System.out.println(Math.PI);
         system.out.println(Math.random());
         System.out.println(Math.abs(-5));  //absolute
         System.out.println(Math.floor(4.5)); //向下取整   4.0
         System.out.println(Math.ceil(4.5));  //向上取整   5.0 
         System.out.println(Math.round(4.5)); //四舍五入   5                                                                                                                                                                                                                         

         System.out.println(Math.pow(5,2));   //25
         System.out.println(Math.pow(2,5));   //32

         System.out.println(Math.signum(-50.0)); //-1.0
         System.out.println(Math.signum(50.0));  //1.0
         System.out.println(Math.signum(0.0));   //0.0正负号函数,不管赋值任何值他们的值都为-1.0    1.0   0.0
         
         System.out.println(Math.sqrt(25));  //开平方根     5
         }
}

absolute: 取绝对值     5

floor    向下取整 4.0

ceil      向上取整 5.0

round  四舍五入   5

pow    幂次方

sigum  -1.0    1.0    0.0

sqrt     开平方根   5

所有结果都是浮点型

9.2.2 常用数学运算方法

Math 类中的常用数学方法较多,大致可以将其分为4大类别,分为三角函数方法,指数函数方法,取整函数方法以及取最大值,最小值和绝对值函数方法,下面分别进行介绍。

1.  三角函数方法 

                                           Math  类中的三角函数方法

方法                                           返回值                                              功能描述

sin(double  a)                    double                                            返回角的三角正弦

cos(double  a)                   double                                            返回角的三角余弦   

tan(double  a)                    double                                            返回角的三角正切

asin(double  a)                  double                                            返回一个值的反正弦

acos(double  a)                 double                                            返回一个值的反余弦

atan(double  a)                  double                                            返回一个值的反正切

toRadians(double  angrad)        double                                            将角度转换为弧度

toDegrees(double  angrad)        double                                            将弧度转换为角度

以上每个方法的参数都是double型的,将参数设置为double有一定的道理,参数以弧度来代替角度来实现,其中1°等于Π\180弧度,所以180°可以使用Π弧度来表示。除了前六个外,Math 类还提供了角度和弧度来转换的方法toRadians() 和yoDegrees()。 但需要注意的是,角度和弧度的转换通常是不精确的。

举个栗子:在项目中创建TrigonometricFunction(三角函数)类,在类的主方法中调用Math 类提供的各种三角函数运算方法,并输出结果。

 这些结果不能做到十分精确,因为派(Π)是近似值。

2.  指数函数方法。

                                                      Math 类中与指数相关函数方法

     指数运算包括求方根,取对数以及求n次方的运算。为了更好的理解指数函数用法,举个栗子来说明,如下:                                                                                                                        

 

3.  在取整函数方法

在具体问题中,取整操作使用也很普遍,所以Java 在Math 类中添加了数字取整方法。

                                               Math 类中常用的取整方法 

4.  取最大值,最小值,绝对值函数方法 

                                                     Math 类中其他常用数据操作方法

 下列举例说明上述方法的使用。(在项目中创建AnyFunction 类, 在类的主方法中调用 Math 类中的方法实现求两数的最大值,最小值和绝对值运算)

 9.3 随机数

在实际开发中生成随机数的使用也很普遍,使用在程序中生成随机数的操作很重要。 在 Java中主要提供了两种方法生成随机数,分别为调用 Math 类和 random( ) 方法和 Random 类提供的生成各种数据类型随机数的方法。

9.3.1 Math.random()方法

在Math 类中存在一个Random()  方法,用于生成随机数字,该方法默认生成大于等于0.0小于1.0的double 型随机数,即 0<=Math.random()<1.0,虽然 Math.random() 方法只可以生成0-1之间的 double 型数字,但只要在 Math.random语句上稍加处理,就可以使用这个方法生成任意范围的随机数,如图所示:

                                               使用random()方法示意图 

为了更好的解释这种生成随机数的方式,举个栗子:

使用Math.random() 方法实现一个简单的猜数字小游戏,要求:使用Math.random() 方法生成一个0—100 之间的随机数字,然后用户输入猜测的数字,判断输入的数字是否与随机生成的数字匹配,如果不匹配,提示相应的信息,如果匹配则表示猜中,游戏结束。代码如下:

 除了随机生成数字以外,使用 Math 类的 random()方法还可以随机生成字符,例如,可以使用下面代码生成a--z 之间的字符:

(char) ('a'+Math.random() * ('z'-'z'+1));

 通过上述表达式可以求出更多的随机字符,如A--Z 之间的随机字符,进而推理出求任意两个字符之间安定随机字符,可以使用以下语句表示:

(char) (cha1+Math.random()*(cha2-cha1+1));

在这里可以将这个表达式设计为一个方法,参数设置为随机生成字符的上限与下限。下面举个栗子:

在项目中创建 MathRandomChar 类,在类中编写 GetRandomChar() 方法生成随机字符,并在主方法中输出字符。 

 9.3.2 Random 类

除了 Math 类中的 random()方法可以获取随机数之外,Java 中还提供了一种可以获取随机数的方式,那就是java.util.Random 类,该类表示一个随机数生成器,可以通过实例化一个Random 对象创建一个随机数生成器。语法如下:

Random r = new Random();

其中r是指Random对象。

以这种方式实例化对象时,Java 编译器以系统当前时间作为随机生成器的种子,因为每时每刻的时间不可能相同,所以生成的随机数将不同,但如果运行速度太快,也会生成两次运行结果相同的随机数。 

同时也可以在实例化Random 类对象时,设置随机数生成器的种子。  语法如下:

Random r= new (seedValue); 

r:  Random 类对象                       seeValue:  随机数生成器的种子

在Random 类中提供了获取各种数据类型随机数的方法,如图所示:

                                           Random 类中常用的获取随机数的方法 

方法

返回值

功能描述

  nextInt()

int

返回一个随机整数

nextLnt(int n)

int

返回大于等于0小于n的随机整数

nextLong()

long

返回一个随机长整型值

nextLoolean

boolean

返回一个随机布尔型值

nextFloat

float

返回一个随机浮点型值

nextDouble

double

返回一个双精度型值

nextGaussian

double

返回一个概率密度为高斯分布的双精度值

举个栗子:使用Random 类模拟微信抢红包功能,具体实现时,在项目中创建 RedBags 类,然后根据用户输入的红包额度和个数随机生成每个红包的金额。代码如下:

9.4 日期时间类

在程序开发中,经常需要处理日期时间,Java 中提供了专门的日期时间类来处理相应的操作。

 9.4.1 Date 类

Date类用于表示日期时间,它位于java.util 包中, 程序中使用该类表示时间时, 需要使用其结构方法来创建 Date 类的对象, 其构造方法及说明情况如下表;

                                                            Date 类的构造方法及说明    

构造方法

                  功能描述

Date( )

分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)

Date(long date )

分配 Date 对象并初始化此对象,以表示自从标准基准时间(即1970年1月1日 00:00:00 GMT)以来指定毫秒数

Date(int year,int month, int date )

已过时

Date(int year, int month, int date, int hrs, int min )

已过时

Date(int year, int month, int date, int hrs, int min, int sec )

已过时

Date(String s)

已过时

 说明: Date 类的后4种构造方法已经显示过时,他们已经被Calendar 的相应方法或者 DateFormat 类相应方法取代了,后面介绍这两个类。

例如,使用Date类的第二种方法创建一个Date 类的对象, 代码如下:

long timeMillis = System.currentTimeMills( ) ;

Date date =  new Date (time  Milles);

上面代码中的 System 类的currentTimeMillis ( )  方法用来获取系统当前时间距标准基准时间的毫秒数,另外,这里需要注意的是,创建 Date 对象时使用的是 long 型整数,而不是 double 型,这主要是因为 double 类型可能会损失精度。

       使用Date 类 创建的对象表示日期和时间,它涉及最多的操作就是比较,例如两个人的生日,哪个较早,哪个较晚,或者两人的生日完全相等,如图示:

                                                    Date 类常用方法及说明            

方法

返回值

功能描述

After(Date when)

boolean

测试当前日期是否在指定的日期之后

Before (Date when)

boolean

测试当前日期是否在指定的日期之前

GetTime( )

Long

获得自1970年1月1日00:00:00GMT开始到现在所表示的毫秒数

Set Time(long time)

void

设置当前Date 对象所表示的日期时间值,改制用以表示1970年1月1日00:00:00 GMT以后 time 毫秒的时间点

举个栗子: 在项目中创建类,使用Date 类的getTime 方法获得自 1970年1月1日00:00:00 GMT 开始到现在所表示的毫秒数,并输出。  代码如下:

* *说明: 由于 Date 类创建对象的时间是变化的,所以每次运行程序在控制台所输出的结果都是不一样的。 

上例过程直接输出Date 对象,显示的是 “ Thu Apr  28  19:48:24  CST  2022 ” 这种形势的日期时间,那么如何将其显示为“ 2022-4-28” 或者“19:48:24”这样的日期时间形势呢 ? Java提供了DateFormat 类来实现类似功能。

DateFormat 类是日期/时间格式化子类的抽象类,它位于java.text包中,可以按照指定格式对日期或时间进行格式化。 DateFormat 提供了很多类方法, 以获得基于默认或给定语言环境和多种格式化风格默认日期/时间 Formatter,格式化风格包括SHORT, MODIUM, LONG等4种,分别如下:

*     SHORT: 完全为数字, 如 12.13.52或3:30pm.

*     MEDIUM: 较长,如  Jan  12,1952.

*     LONG: 更长, 如:January 12,1952 或 3:30:32pm.

*     FULL:  完全更长,  如  Tuesday, April 12, 1952 AD 或 3:30:42pm PST. 

          另外,使用 DateFormat 还可以自定义日期时间的格式。 要格式化一个当前语言环境下的日期,首先需要创建 DateFormat 类的一个对象,由于它是抽象类,因此可以使用其静态工厂方法 getDateInstance 进行创建。 语法如下:

DateFormat  df =DateFormat.getDateInstance( ); 

使用getDateInstance 获取的是该国家/地区的标准日期格式, 另外, DateFormat 类还提供了一些其他静态工厂方法,例如,使用 getTimeInstance 可获取该国家/地区的时间格式,使用getDateTimeInstance 可获取日期和时间格式。

                                                 DateFormat类的常用方法及说明     

方法

返回值

功能描述

Format(Date date)

String

将一个Date 格式化为日期/时间字符串

GetCalendar( )

Calendar

获取与此日期/时间格式器关联的日历

GetDateInstance( )

Static DateFormat

获取日期格式器,该格式器具有默认语言环境的默认格式化风格

GetDate TimeInstance( )

Static DateFormat

获取日期/时间格式器,该格式器具有默认语言环境的默认格式化风格

GetInstance( )

Static DateFormat

获取为日期和时间使用 SHORT 风格的默认的默认日期/时间格式器

GetTimeInstance( )

Static DateFormat

获取时间格式,该格式器具有默认语言环境的默认格式化风格

Parse(String source)

Date

将字符串解析成一个日期,并返回这个日期的 Date 对象

由于 DateFormat 类是一个抽象类,不能用new 创建实例对象,因此,除了使用getXXXInstance 方法创建 其对象外,还可以使用子类,例如,SimpleDateFormat 类, 该类是一个以语言环境相关的方式来格式化和分析日期的具体类,它允许进行格式化(日期->文本),分析(文本->日期),和规范化。

举个栗子:创建一个 Java 类,在其中首先创建 Date 类的对象;然后使用 DateFormat 类的 getInsatnce 方法和 SimpleDateFormat 类中创建不同的 DateFormat 对象,并指定不同日期时间格式,并对当前日期时间进行格式化,并输出。代码如下:

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class DateFormatTest {
     public static void main(String[] args)  {
        	   //创建日期
     Date date = new Date();
               //创建不同时间格式
     DateFormat df1 = DateFormat.getInstance();
     DateFormat df2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss EE");
     DateFormat df3 = new SimpleDateFormat("yyyy年MM月dd日hh时mm分ss秒 EE",Locale.CHINA);
     DateFormat df4 = new SimpleDateFormat("yyyy-MM=dd hh:mm:ss:EE",Locale.US);
     DateFormat df5 = new SimpleDateFormat("yyyy-MM-dd");
     DateFormat df6 = new SimpleDateFormat("yyyy年MM月dd日");
     //将日期按照不同格式进行输出
     System.out.println("------将日期时间按照不同格式进行输出------");
     System.out.println("按照Java默认的日期格式: "+ df1.format(date));
     System.out.println("按照指定格式yyyy-MM-dd hh:mm:ss, 系统默认区域: "+df2.format(date));
     System.out.println("按照指定格式yyyy年MM月dd日hh时mm分ss秒,区域为中文: " +df3.format(date));
     System.out.println("按照指定格式yyyy-MM-dd hh:mm:ss,区域为美国: "+df4.format(date));
     System.out.println("按照指定格式yyyy-MM-dd: "+df5.format(date));
     System.out.println("按照指定格式yyyy年MM月dd日: "+df6.format(date));
     }
}

9.4.2 Calendar

 在Date 类中的构造方法时,其实这几种方法是过时的,这些过时的方法其实是被Calendar 类是方法代替了,这里的Calendar为什么要使用该类呢 ?因为Date类在设计之初没有考虑国际化,他的很多方法都被标记为过时状态,而且其他方法不能满足用户需求,比如需要获取指定时间的年月日时分秒信息,或者想要进行加减运算等复杂的操作,Date 类已经不能胜任。

细解Calendar类:Calendar类是一个抽象类,它为特定与一组诸如YEAR, MONEY, DAY_OF_MONTH, HOUR 等日历字段之间的转换方法提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供一些方法。另外,该类还为,该类还为实现包范围内的具体日历系统提供了其他字段和方法,这些字段和方法被定义为 protected。

Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象。Calendar的getInstance方法返回一个Calendar 对象,其日历字段已由当前日期和时间初始化。使用方法如下:

 Calendar righgtNow = Calendar.getInstance();

由于Calendar 类是一个抽象类,不能用new创建实例对象,,因此,除了使用getInstance 方法创建其对象外,还可以使用其子类创建对象,例如:GregorianCalendar类。

Calender 类提供的常用字段及说明
字段名说明
DATEget 和 set 的字段数字,指示一个月中的某天
DAY_OF_MONTHget 和 set 的字段数字,指示一个月中的某天
DAY_OF_WEEKget 和 set 的字段数字,指示一个星期中的某天
DAY_OF_WEEK_IN_MONTHget 和 set 的字段数字,指示当前月中的第几个星期
DAY_OF_YEARget 和 set 的字段数字,指示当前月中的天数
HOURget 和 set 的字段数字,指示上午和下午的小时
HOUR_OF_DAYget 和 set 的字段数字,指示一天中的小时
MILLISECONDget 和 set 的字段数字,指示某天一秒中的毫秒
MINUTEget 和 set 的字段数字,指示一小时中的分钟
MONTH指示月份get 和 set 的字段数字
SECONDget 和 set 的字段数字,指示一个分钟中的秒
time日历的当前设置时间,以毫秒为单位,表示自格林威治标准时间1970年1月1日0:00:00后经过的时间
WEEK_OF_MONTHget 和 set 的字段数字,指示当前月中的星期数
WEEK_OF_YEARget 和 set 的字段数字,指示当前年中的星期数
YEAR指示年的get 和set 的字段数字
  Calendar 类提供的常用方法及说明
方法返回值功能描述
add(int filed,int amount)void根据日历的规则,为给定的日历字段添加或减去指定的时间量
after(Object when)boolean判断此Calendar 表示的时间是否在指定 Object 表示的时间之后,返回判断结果
before(Object when)boolean判断此Calendar 表示的时间是否在指定 Object 表示的时间之前,返回判断结果
get(int filed)int返回给定日历字段的值
getInstance()static Calendar使用默认时区和语言环境获得一个日历
getTime()Date返回一个表示此 Calendar 时间值(从历元到现在的毫秒偏移量)的Date 对象
getTimeMillis()long返回此Calendar 的时间值,以毫秒为单位
roll(int filed, boolean up)abstract void在给定的时间字段上添加或减去(上/下)单个时间单元,不更改更大的字段
set(int filed, int value)void将指定的日历字段设置为给定值
set(int year, int month, int date)void设置日历字段YEAR, MONTH 和DAY_OF_MONTH的值
set(int year, int month, int date, int hourOfDay, int minute, )void设置日历字段YEAR, MONTH 和DAY_OF_MONTH,HOUT_OF_DAY和MINUTE的值
set(int year, int month, int date, int hourOfDay, int minute, int second)void设置字段YTAR, MONTH, DAY_OF_MONTH, HOUR, MINUTE和SECOND 的值
setTime(Date date)void使用给定的 Date 设置此值 Calendar 时间
setTimeInMillis(long millis)void用给定的 long 值设置此 Calendar 的当前时间值

说明:从上表可看出,add 方法和roll 方法都用来为给定的日历字段添加或减去指定时间量,它们的主要区别在于: 使用add方法时会影响大的字段,像数学加法的进位或错位,而使用roll方法设置的日期字段只是进行增加或减少,不会改变更大的字段。

​
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class OlympicWinterGames {
       public static void main(String[] args)  {
    	 System.out.println("————————冬奥会倒计时——————————");
    	 Date date= new Date();
    	 //创建SimpleDateFormat 对象,指定目标格式
    	 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
    	 String today = simpleDateFormat.format(date);
    	 //调用format方法,格式化时间,转换为指定方法
    	 System.out.println("今天是" + today);
    	 //输出当前时间
    	 long time1 = date.getTime();
    	 //计算自1970年1月1日00:00:00至当前时间所经过的毫秒数
    	 Calendar calendar = Calendar.getInstance();
    	 //使用默认时区与语言环境获得一个日历calendar
    	 //设置日历calendar中的年,月,日的值。因为月份是从0开始计算的,所以这里要减1 calendar.set(2022,2-1,4);
    	 //计算2022年2月4日距离当前时间相差天数
    	 long time2 = calendar.getTimeInMillis(); //计算2022年2月4日距离当前时间相差的天数
    	 long day = (time2 - time1)/(1000 * 60 * 60 * 24);
    	 System.out.println("距离2022年“北京——张家口”冬奥会还有 " +day+ "天!");
         }
}


​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值