类型转换
由于Java是强类型语言,所以进行某些运算时需要类型转换。
低-------------------------------------------------------->高
byte, short, char,-> int -> long -> float -> double
运算中,不同类型的数据先转化为同一类型,然后进行运算
- 强制类型转换
格式:(类型)变量名 转换精度为高–>低
注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,强制转换;反之,自动转换
4.转换的时候可能存在内存溢出,或者精度问题
- 自动类型转换
转换精度为低–>高
代码示范:
public class demo04 {
public static void main(String[] args) {
int i=128;
byte b = (byte)i; //内存溢出
double c=i; //自动转换
//强制转换 (类型)变量名 高-->低
//自动转换 低-->高
System.out.println(i);
System.out.println(b);
System.out.println(c);
/*
注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,强制转换;反之,自动转换
4.转换的时候可能存在内存溢出,或者精度问题
*/
System.out.println("----------------------------------");
System.out.println((int)21.7); //21
System.out.println((int)-45.79f); //-45
System.out.println("----------------------------------");
char d='a';
int e=d+1; //自动转换,低到高
System.out.println(e);
System.out.println((char)e);
System.out.println("----------------------------------");
int money =10_0000_0000;
int year =20;
int total1=money*year; //-1474836480,计算时已经溢出了
long total2=money*(long)year; //先将一个数转换成long类型
System.out.println(total1);
System.out.println(total2);
}
}
变量、常量、作用域
变量
-
变量是什么:可以变化的量
-
Java是一种强类型语言,每个变量都必须声明其类型
-
Java变量是程序中最基本的存储单元,其要素包括变量名(标识符)、变量类型(基本数据类型)和作用域
type varName [=value][{,varName[=value]}];
//数据类型 变量名 = 值;可以使用逗号隔开来声明多个同类型的变量(为了美观一般不这样做)
-
注意事项
每个变量都有类型,类型可以是基本类型(八种),也可以是引用类型(三种)
变量名必须是合法的标识符
变量声明是一条完整的语句,因此每一个声明都必须以分号结束变量作用域
-
举例
public class demo05 { public static void main(String[] args) { //int a,b,c; String name="huge"; char x='X'; double pi=3.14; } }
作用域
类变量
使用static声明
static double salary = 2500;
实例变量
-
在类里边但是在方法外边,从属于对象(类),不一定需要初始化值,因为不初始化系统会自动为它赋默认值
0(整数),0.0(小数),u0000(字符型),false(布尔型),null(除了基本类型外)
-
必须通过这个类才能找到它
局部变量
局部变量在类中的方法里边被定义,使用前必须进行声明和初始化值,作用域为从方法开始的{到方法结束的}
举例
public class Demo06 {
//属性:变量
//类变量 static
static double salary = 2500;
//实例变量:从属于对象;不一定需要初始化值,要通过这个类才能去使用它
//如果不初始化则这个类型的默认值为0(整数) 0.0(小数) u0000(字符型) false(布尔型)
//除了基本类型,其余的都是null
String name;
int age;
//main方法
public static void main(String[] args) {
//局部变量,必须声明和初始化值
int i=10;
System.out.println(i);
//变量类型(自定义类型) 变量名 = new Demo06()
Demo06 demo06=new Demo06();
System.out.println(demo06.age);
System.out.println(demo06.name);
//类变量 static
System.out.println(salary);
}
//其他方法
public void add(){
}
}
常量
-
常量(constant):初始化以后不能再改变值!不会变动的值,一般用大写字母表示
-
所谓常量可以理解为一种特殊变量的值,它的值被设定后,在程序运行过程中不允许被改变
final 常量名=值; final double PI=3.14;
-
举例
public class Demo07 { //变量类型前面添加的都是修饰符,可以交换顺序 static final double PI1=3.14159265; final double PI2=3.14159; public static void main(String[] args) { final double PI3=3.14; System.out.println(PI1); Demo07 demo07=new Demo07(); System.out.println(demo07.PI2); System.out.println(PI3); } }
变量命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary,lastName
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()