来,继续啊,下面我们来学习基本类型包装类,它涉及到1个案例:猜数字。
来,我们一起看一下,在这个输入框里,我们要输入一个猜的数据,然后点击我猜这个按钮,和已经产生的数据进行比对,给出相应的提示即可。
而且呢,猜数字案例的基本逻辑,我们前面是讲解过的,只不过当时使用的是键盘录入数据,而这里我们采用的是在输入框里输入数据而已。
那我们为什么要学习基本类型包装类呢?
因为,在输入框里输入的数据,我们得到的是一个字符串数据,而实际比较的时候我们需要的是一个int类型的数据,所以,我们得想办法把字符串数据转换为int类型的数据。
为了实现这个效果,Java就提供了基本类型包装类供我们使用。所以,我们说,将基本数据类型封装成对象的好处就是可以通过对象调用方法操作数据。
而我们常用的操作之一呢:就是用于基本数据类型与字符串之间的转换。
在这里呢,我们一起来看一下,八种基本数据类型和其对应的包装类类型
从名字上看,包装类类型就是把基本类型的第一个单词改为大写即可。
当然,这里也有两个比较特殊的,一个是int类型的包装类,一个是字符类型的包装类,它们的包装类名称是这个样子的,大家了解一下即可。
下面呢,我们以Integer举例来讲解字符串和int类型之间的相互转换,其他基本类型和字符串的转换方式类似,在使用的时候,大家参照Integer的使用即可。
而关于Integer类的学习呢,我们先到帮助文档中去查看,然后回来总结,最后到IDEA中去演示。
来,打开我们准备好的帮助文档,关于通过帮助文档查看Integer,大家按照老师讲解的API的使用步骤看看即可。
通过文档了解了Integer类之后,下面我们回到资料中总结一下:
Integer:
构造方法:
成员方法:
知道了Integer的构造方法后,我们到IDEA中去使用一下:
xxxxxxxxxx
/*
构造方法
Integer(int value):根据 int 值创建 Integer 对象(过时)
Integer(String s):根据 String 值创建 Integer 对象(过时)
成员方法
static Integer valueOf(int i):返回表示指定的 int 值的 Integer 实例
static Integer valueOf(String s):返回一个保存指定值的 Integer 对象 String
*/
public class IntegerDemo01 {
public static void main(String[] args) {
// //Integer(int value):根据 int 值创建 Integer 对象(过时)
// Integer i1 = new Integer(100);
// System.out.println(i1);
//
// //Integer(String s):根据 String 值创建 Integer 对象(过时)
// Integer i2 = new Integer("100");
// System.out.println(i2);
// static Integer valueOf(int i):返回表示指定的 int 值的 Integer 实例
// static Integer valueOf(String s):返回一个保存指定值的 Integer 对象 String
Integer i1 = Integer.valueOf(100);
Integer i2 = Integer.valueOf("100");
System.out.println(i1);
System.out.println(i2);
}
}
讲解完毕后,大家赶快动手练习一下吧。
来,继续啊,下面我们来学习int类型数据和String类型数据的相互转换,关于它们之间的相互转换,我们先到IDEA中去讲解,然后回来总结。
xxxxxxxxxx
/*
int和String的相互转换
*/
public class IntegerDemo02 {
public static void main(String[] args) {
//int --- String
int number = 100;
//方式1
String s1 = number + "";
System.out.println(s1);
//方式2
//static String valueOf(int i)
String s2 = String.valueOf(number);
System.out.println(s2);
System.out.println("---------------");
//String --- int
String s = "100";
//方式1:String --- Integer --- int
Integer i = Integer.valueOf(s);
//int intValue() 返回此值 Integer为 int
int x = i.intValue();
System.out.println(x);
//方式2
//static int parseInt(String s)
int y = Integer.parseInt(s);
System.out.println(y);
}
}
讲解完毕int类型和String类型的相互转换后,回到资料总结一下:
int 转换为 String
String 转换为 int
好了,int类型数据和String类型数据的相互转换我们就先讲到这里。
需求:根据下列要求,完成猜数字的逻辑
要求:
① 系统产生一个1-100之间的随机数
② 猜的内容不能为空
③ 每次根据猜的数字给出相应的提示
知道了猜数字案例的需求和要求后,下面我们到IDEA中去实现一下:
xxxxxxxxxx
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
/*
1:系统产生一个1-100之间的随机数
2:猜的内容不能为空
3:每次根据猜的数字给出相应的提示
*/
public class GuessNumber {
public static void main(String[] args) {
//创建窗体对象
JFrame jf = new JFrame();
jf.setTitle("猜数字");
jf.setSize(400, 300);
jf.setDefaultCloseOperation(3);
jf.setLocationRelativeTo(null);
jf.setAlwaysOnTop(true);
jf.setLayout(null);
//系统产生一个1-100之间的随机数
Random r = new Random();
int number = r.nextInt(100) + 1;
//提示信息
JLabel messageLable = new JLabel("系统产生了一个1-100之间的数据,请猜一猜");
messageLable.setBounds(70, 50, 350, 20);
jf.add(messageLable);
//输入要猜的数字
JTextField numberField = new JTextField();
numberField.setBounds(120, 100, 150, 20);
jf.add(numberField);
//猜数字的按钮
JButton guessButton = new JButton("我猜");
guessButton.setBounds(150, 150, 100, 20);
jf.add(guessButton);
guessButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//猜的内容不能为空
String stringNumber = numberField.getText().trim();
if(stringNumber.equals("")) {
JOptionPane.showMessageDialog(jf,"猜的数字不能为空");
return;
}
//每次根据猜的数字给出相应的提示
int guessNumber = Integer.parseInt(stringNumber);
if(guessNumber > number) {
JOptionPane.showMessageDialog(jf,"你猜的数字"+guessNumber+"大了");
numberField.setText("");
} else if(guessNumber < number) {
JOptionPane.showMessageDialog(jf,"你猜的数字"+guessNumber+"小了");
numberField.setText("");
} else {
JOptionPane.showMessageDialog(jf,"恭喜你猜中了");
}
}
});
jf.setVisible(true);
}
}
讲解完毕后,大家赶快动手练习一下吧。
来,继续啊,下面我们来学习自动装箱和拆箱。
首先,我们来说一下什么是装箱和拆箱:
了解了装箱和拆箱后,下面我们到IDEA中去演示一下:
xxxxxxxxxx
/*
装箱:把基本数据类型转换为对应的包装类类型
拆箱:把包装类类型转换为对应的基本数据类型
*/
public class IntegerDemo03 {
public static void main(String[] args) {
//装箱:把基本数据类型转换为对应的包装类类型
// Integer i = Integer.valueOf(100);
Integer ii = 100; //Integer.valueOf(100);
//拆箱:把包装类类型转换为对应的基本数据类型
ii += 200;
/*
ii = ii + 200;
ii = ii.intValue() + 200; //自动拆箱
ii = 300; //Integer.valueOf(300);
*/
System.out.println(ii);
}
}
好了,自动装箱和拆箱我们就先讲到这里。