java学习Day07

1.类型转换

运算中,不同类型的数据先转化为同一类型,然后进行运算。

 

从这里可以看出,小数的优先级一定大于整数的优先级。

自动类型转换

转换条件:

• 两种数据类型彼此兼容

• 目标类型的取值范围大于源数据类型(低级类型数据转换成高级类型数据)

在运算过程中,由于不同的数据类型会转换成同一种数据类型,所以整型、浮点型以及字符型都可以参与混合运算。自动转换的规则是从低级类型数据转换成高级类型数据。转换规则如下:

• 数值型数据的转换:byte→short→int→long→float→double。

• 字符型转换为整型:char→int。

public class Dome04 {
    public static void main(String[] args) {
        float money01=15.6f;  //定义面包的价格
        double money02=12.6;  //定义牛奶的价格
        int numl01=2;   //定义面包的数量
        int numl02=3;  //定义牛奶的数量
        double res=money01*numl01+money02*numl02;  //计算总价
        System.out.println(res);  //输出总价  运行结果:69.00000076293945
    }
}

从执行结果看出,float、int 和 double 三种数据类型参与运算,最后输出的结果为 double 类型的数据。这种转换一般称为“表达式中类型的自动提升”。

注意:char 类型比较特殊,char 自动转换成 int、long、float 和 double,但 byte 和 short 不能自动转换为 char,而且 char 也不能自动转换为 byte 或 short。

强制类型转换

当两种数据类型不兼容,或目标类型的取值范围小于源类型时,自动转换将无法进行,这时就需要进行强制类型转换。

  public static void main(String[] args) {
        int a=3;
        double b=6.0;
        a=(int)b;
        System.out.println(a);  //运行结果:6

    }
}

上述代码中首先将 double 类型变量 b 的值强制转换成 int 类型,然后将值赋给 a,但是变量 b 本身的值是没有发生变化的。

在强制类型转换中,如果是将浮点类型的值转换为整数,直接去掉小数点后边的所有数字;而如果是整数类型强制转换为浮点类型时,将在小数点后面补零。

注意:

① 在把高容量转换到低容量时,强制类型转换可能存在内存溢出或精度问题。

② 不能对布尔值进行转换。

③ 不能把对象类型转换成不相干的类型

④ 操作比较大的数时候,注意溢出问题

2.变量

Java 语言是强类型(Strongly Typed)语言,强类型包含以下两方面的含义:

• 所有的变量必须先声明、后使用。

• 指定类型的变量只能接受类型与之匹配的值。

DataType identifier = value;

DataType:变量类型,如 int、string、 char 和 double 等。

identifier:标识符,也叫变量名称。

value:声明变量时的值。

变量标识符的命名规范如下:

首字符必须是字母、下划线(―)、美元符号($)或者人民币符号(¥)。

• 标识符由数字(0~9)、大写字母(A~Z)、小写字母(a~z)、下划线(―)、美元符号($)、人民币符号(¥)以及所有在十六进制 0xc0 前的 ASCII 码组成。

• 不能把关键字、保留字作为标识符。

• 标识符的长度没有限制。

• 标识符区分大小写。

注意事项:

  • 每个变量都有类型,类型可以是基本类型也可以是引用类型。

  • 变量名必须是合法的标识符。

  • 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。

变量的作用域

根据作用域的不同,一般将变量分为不同的类型:成员变量和局部变量。

public class Dome04 {
    static int allClicks=0;     //类变量
    String str ="Hello world";     //实例变量
    
    public void method(){
        int i=0;     //局部变量
    }
}

(1)成员变量

成员变量分为两种:类变量(静态变量)和实例变量(全局变量)。

Java 的成员变量有两种,分别是全局变量和静态变量(类变量)。定义在方法体和语句块之外,不属于任何一个方法,作用域是整个类。

①实例变量

实例变量在类里面和方法外面,从属于对象

(2)局部变量

局部变量是指在方法或者方法代码块中定义的变量,其作用域是其所在的代码块。可分为以下三种:

• 方法参数变量(形参):在整个方法内有效。

• 方法局部变量(方法内定义): 从定义这个变量开始到方法结束这一段时间内有效。

• 代码块局部变量(代码块内定义):从定义这个变量开始到代码块结束这一段时间内有效。

局部变量在使用前必须被程序员主动初始化值。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苏珩6200

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值