DAY08学习日记之变量、常量、类型转换
类型转换
数据类型的转换是在所赋值的数值类型和被变量接收的数据类型不一致时发生的,它需要从一种数据类型转换成另一种数据类型。数据类型的转换可以分为隐式转换(自动类型转换)和显式转换(强制类型转换)两种。
低------------------------------->高
byte,short,char-->int-->long-->float-->double//小数的优先级大于整数
public class Demon8 {
public static void main(String[] args) {
int a = 129;
byte b = (byte)a;//强制转换 (类型名)变量名 高-->低
System.out.println(a);
System.out.println(b);//Q:a=b? A:存在内存溢出问题,故不相等.
/* 注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.高容量转换到低容量时,强制转换
4.转换时可能存在内存溢出问题和精度问题
*/
//===========================================================
// 精度问题例子
System.out.println((int)99.9);//99
System.out.println((int)-88.88F);//-88
//===============================
char c = 'f';
int d = c+1;
System.out.println(d);
System.out.println((char)d);
//========================================================
//溢出问题(操作较大数时)
int money = 10_0000_0000;//小技巧:数字之间可以用下划线分割,不影响输出
int year = 20;
int total = money*year;
long total2= money*year;
long total3 = money*((long)year);//计算之前先把一个数转换
System.out.println(total);//-1474836480,因存在溢出问题,计算结果不正确
System.out.println(total2);//默认是int,转换之前已经存在问题,因此也不正确
System.out.println(total3);//结果正确
}
}
自动转换
public class Demon9 {
public static void main(String[] args) {
int a = 999;
double b =a;//自动转换 低-->高
System.out.println(a);
System.out.println(b);
}
}
变量
Java 变量是程序中最基本的存储单元,其要素包括变量名、变量类型和作用域。
// 数据类型 变量名=值
注意事项:
-
每个变量都有类型,类型可以使基本类型也可以是引用类型.
-
变量名必须是合法的标识符.
-
变量声明是一条完整的语句,因此每一个声明都必须以分号结束.
变量作用域分为类变量、实例变量、和局部变量.
局部变量
public class Demon10 {
public static void main(String[] args) {//main为方法,此处除了可以定义方法,还可以定义属性变量.
// 局部变量是指在方法或者方法代码块中定义的变量,其作用域是其所在的代码块
//局部变量使用前必须声明和初始化值
int a = 10;
System.out.println(a);
}
//================================================================
//其他方法
public void add() {
}
}
实例变量
public class Demon11 {
/* 实例变量:在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。
实例变量也叫对象变量,即没加static 的变量.
*/
//如果不自行初始化,这个类型默认值为0 0.0
//布尔值默认是false
//除了基本类型都是null
String name;
int age;
public static void main(String[] args) {
Demon11 demon11 = new Demon11();
System.out.println(demon11.age);
System.out.println(demon11.name);
}
}
类变量
public class Demon12 {
/*类变量(也叫静态变量)是类中独立于方法之外的变量,用static 修饰。(static表示“全局的”、“静态的”)
类变量也就是在变量前加了static 的变量;
*/
static double salary = 5000;
public static void main(String[] args) {
System.out.println(salary);
}
}
常量
常量:程序在执行过程中其值是不可以改变的量叫做常量。常量名一般使用大写字符.
public class Demon13 {
static final double THEBESTZERO = 99.99;
final static double ZHANG = 66.66;
// 修饰符,不存在先后顺序
public static void main(String[] args) {
System.out.println(THEBESTZERO);
System.out.println(ZHANG);
}
}
变量的命名规范
◆所有变量、方法、类名: 见名知意 ◆类成员变量: 首字母小写和驼峰原则: monthSalary 除了第一个单词以外,后面的单词首字母大写 ◆局部变量:首字母小写和驼峰原则 ◆常量:大写字母和下划线:MAX VALUE ◆类名:首字母大写和驼峰原则:Man, GoodMan