JAVA数据类型转换

目标
1. 了解为什么要使用数据类型转换
2. 数据类型的转换的分类
为什么要使用数据类型转换
大家有没有考虑过在日常生活中不同的数据如何运算
例如 : 去年包子1元一个 ,受物价的上涨影响 ,今年涨了0.5元 ,我们都知道是1.5元 , 但是对于计算机
来说他不知道 ,因为 1元 是整型 (int) 而 0.5元是浮点型(double),这个问题对于计算机来说就像 问我
们 10只蝌蚪 加上5只青蛙,是多少蝌蚪或者多少青蛙一个道理.你会跟提问题的人怎么说??
不过呢 Java已经帮我处理好了这个结果我们来看下
原理: 不同的数据类型混合运算时 会把"较小"类型 提升为 "较大" 的数据类型 最终的结果也为"较
大"的数据类型
注意
数据类型只会把较小的类型向 较大的方向转换 ,向 较小 的类型转换会报错 如下
public class Hello {
public static void main(String[] args) {
//声明原价
int oldPrice = 1;
//声明涨的价格
double appreciate = 0.5;
    //两个值相加
    double newPrice = oldPrice + appreciate;
//输出结果
System.out.println( newPrice );//此时 newPrice的数据类型肯定是double了

JAVA数据类型转换

 

原理: 不同的数据类型混合运算时 会把"较小"类型 提升为 "较大" 的数据类型 最终的结果也为"较
大"的数据类型
注意
数据类型只会把较小的类型向 较大的方向转换 ,向 较小 的类型转换会报错 如下
public class Hello {
public static void main(String[] args) {
//声明原价
int oldPrice = 1;
//声明涨的价格
double appreciate = 0.5;
    //两个值相加
    double newPrice = oldPrice + appreciate;
//输出结果
System.out.println( newPrice );//此时 newPrice的数据类型肯定是double了
 }
}
其实就是冰箱(int)里装不下大象(double)的概念 . 因为冰箱小嘛.

JAVA数据类型转换

 

 


数据类型的分类
自动类型转换
例如
自动类型转换(隐式数据类型转换)只会从低到高转换,顺序为
byte -> short -> char ->int ->long ->float ->double
强制类型转换
为什么有了自动数据类型转换还有强制类型转换
我们刚刚使用了自动类型转换,但是他有一个痛点就是不会从 高到低 转换
如果说我想把一个double类型转换为int类型呢?
这时候只能强制转换数据类型
如何使用强制转换数据类型
public class Hello {
public static void main(String[] args) {
//声明原价
int oldPrice = 1;
//声明涨的价格
double appreciate = 0.5;
    //两个值相加
    int newPrice = oldPrice + appreciate;
//输出结果
System.out.println( newPrice );//此时 在编译运行时 会报错 导致编译失败

自动类型转换(隐式数据类型转换)只会从低到高转换,顺序为
byte -> short -> char ->int ->long ->float ->double
强制类型转换
为什么有了自动数据类型转换还有强制类型转换
我们刚刚使用了自动类型转换,但是他有一个痛点就是不会从 高到低 转换
如果说我想把一个double类型转换为int类型呢?
这时候只能强制转换数据类型
如何使用强制转换数据类型
public class Hello {
public static void main(String[] args) {
//声明原价
int oldPrice = 1;
//声明涨的价格
double appreciate = 0.5;
    //两个值相加
    int newPrice = oldPrice + appreciate;
//输出结果
System.out.println( newPrice );//此时 在编译运行时 会报错 导致编译失败
 }
}
public class Hello {
public static void main(String[] args) {
//声明原价
int oldPrice = 1;
//声明涨的价格
double appreciate = 0.5;
//输出结果
System.out.println( oldPrice + appreciate );//此时 oldPrice + appreciate
的数据类型转换是由java给我转换的这就是自动类型转换
 }
}

JAVA数据类型转换

 

 


注意 :
并不是所有的数据类型都可以相互转换 编译器可以把青蛙(double)转换为蝌蚪(int) 也可以把蝌蚪
转换为青蛙因为两者在本质上是一样的所以可以转换.
但是编译器不可能吧蝌蚪转换为老鹰(boolean|| char 等)类型

使用Scanner录入数据
目标
1. 掌握什么是Scanner?
2. 为什么使用Scanner?
3. 如何使用Scanner?
什么是Scanner
本意叫 扫描器 其实就是输入框
在java语言中如果想让用户输入数据,就会使用到输入框(Scanner)
在html中的
为什么使用Scanner
因为在实际程序运行中, 程序里的变量都是由用户输入的
例如:
去办一张银行卡 要输入密码 密码谁来输入 ? 银行工作人员设置吗? 还是用户?
很显然肯定是用户来输入.
如何使用Scanner
1. 首先先导入Scanner这个类 , java语言已经帮我们写好了这个类,直接导入.
2. 第二步创建一个Scanner"扫描器"
3. 第三步 就可以使用Scanner扫描器了
4. 可以输入或者做拼接运算都可以.
实例:
import java.util.Scanner; //第一步导入Scanner(扫描器)这个类
public class Hello {
public static void main(String[] args) {
// 创建Scanner (扫描器) 方法如下
Scanner scanner = new Scanner(System.in);
//使用Scanner(扫描器) 接收一个变量值
String name = scanner.next();
//输出接收到的用户信息

JAVA数据类型转换

 

 

JAVA数据类型转换

 

 


System.out.println("大家好,我叫"+name);

补充
刚刚实例中我们使用Scanner接收了一个字符串使用的方法是
String name = scanner.next();//next()接收的是字符串
还可以接受其他的数据类型但是使用方法不一样
整型
int age = scanner.nextInt();
浮点型
float weight = scanner.float();
实例
import java.util.Scanner; //第一步导入Scanner(扫描器)这个类
public class Hello {
public static void main(String[] args) {
// 创建Scanner (扫描器) 方法如下
Scanner scanner = new Scanner(System.in);
//输出 使用Scanner之前要提示用户输入的信息
System.out.println("请输入您的名字");
//使用Scanner(扫描器) 接收名字
String name = scanner.next();
//输出 使用Scanner之前要提示用户输入的信息
System.out.println("请输入您的年龄");
//使用Scanner(扫描器) 接收年龄的值
int age = scanner.nextInt();
//输出 使用Scanner之前要提示用户输入的信息
System.out.println("请输入您的体重");
//使用Scanner(扫描器) 接收体重的值
float weight = scanner.nextFloat();
//输出接收到的用户信息
System.out.println("大家好,我叫"+name+",今年"+age+",现在的体重是"+weight+"kg,
再见");
}

JAVA数据类型转换

 

上一篇:c#基础1


下一篇:郑州轻工业大学OJ1135: 算菜价