类型转换
- 不同类型数据先转化为同一类型,然后进行运算
- 容量从低到高(字节大小)
- 小数优先于整数
public class Demo05 {
public static void main(String[] args) {
int i = 128;
byte b = (byte)i; //byte最大127,内存溢出
double a = i;
//强制转换 (类型)变量名 高--低
//自动转换 低--高
System.out.println(i);
System.out.println(b);
System.out.println(a);
/*
注意点:
1.不能对布尔值进行转换
2.不能把对象转换为不相干的类型
3.把高容量转换为低容量时强制转换
4.转换时可能存在内存溢出,或者精度问题
*/
System.out.println("==============================================");
System.out.println((int)23.7); //23
System.out.println((int)-23.79f); //-23 精度问题
System.out.println("==============================================");
char c = 'a';
int d = c+1;
System.out.println(d);
System.out.println((char)d);
}
}
public class Demo06 {
public static void main(String[] args) {
//操作比较大的数时,注意数据溢出
//JDK7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
int years = 20;
int total = money*years; //-1474836480 计算时溢出了
long total2 = money*years;
System.out.println(total);
System.out.println(total2); //-1474836480 默认是int,计算之后才转换为long,转换之前已经存在问题
long total3 = money*((long)years); //先把一个数转换为long
System.out.println(total3); //20000000000
}
}
变量
public class Demo07 {
public static void main(String[] args) {
//int a=1,b=2,c=3; //程序可读性
String name = "Ximena";
char x = 'X';
double pi = 3.14;
}
}
变量作用域
- 类变量:跟着static关键词
- 实例变量:在中间(方法外面,类里面)
- 局部变量:在方法里面
//类
public class Demo08 {
//类变量 static
static double salary = 2500;
//属性:变量
//实例变量:从属于对象(类):如果不自行初始化值,这个类型的默认值为0 0.0 (u)0000 false null
//除了基本类型,其余默认值都是null
String name;
int age;
//main方法(主程序方法) (在类里面 )
public static void main(String[] args) {
//局部变量(在方法里):必须声明和初始化值
int i = 10;
System.out.println(i);
//变量类型 变量名 = new Demo08();
Demo08 demo08 = new Demo08();
System.out.println(demo08.age); //0 未赋初始值
System.out.println(demo08.name); //null
//类变量 static(静态变量)
System.out.println(salary); //2500.0
}
//其他方法
public void add(){
//System.out.println(i); //i报错,因为不在这个方法里
}
}
常量
public class Demo09 {
//修饰符(static final),不存在先后顺序
static final double PI = 3.14;
//final static double PI = 3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}
变量的命名规范
- 类成员变量指除了常量
- 驼峰原则:第一个单词首字母小写,后面单词首字母大写,如lastName
- 类名即Demo08