Java笔记02
类型转换
public class Demo05 {
public static void main(String[] args) {
int i = 128;
byte b = (byte)i; //强制转换 内存溢出
double d = i; //自动转换
//强制转换 (类型)变量名 高--低
//自动转换 低--高
// 低 -----------------------------------------------> 高
// byte,short,char --> int --> long --> float --> double
System.out.println(i); //128
System.out.println(b); //-128 内存溢出
System.out.println(d); //128.0
/*
注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换为低容量的时候,强制转换、
4.转换的时候可能存在内存溢出,或者精度问题!
*/
System.out.println("=====================================================");
System.out.println((int)23.7); //23
System.out.println((int)-45.82F); //-45
System.out.println("=====================================================");
char e = 'a';
int f = e+1;
System.out.println(f);
System.out.println((char) f);
}
}
溢出问题和常见错误
public class Demo06 {
public static void main(String[] args) {
//操作较大的数的时候,注意溢出问题
//JDK7新特性:数字之间可以用下划线分割
int money = 10_0000_0000;
int years = 20;
int total = money*years;
System.out.println(money); //1000000000
//常见错误:
System.out.println(total); //-1474836480 计算的时候溢出了
//常见的错误的解决方案:
long total2 = money*years;
System.out.println(total2); //-1474836480 money和years的数据类型都默认是int,因此在结果转换之前就已经出问题了
//正确的解决方案:
long total3 = money*(long)years; //将一个数(money或者years)转换为long类型,即可输出正确的运算结果
System.out.println(total3); //20000000000
}
}
变量
变量的三种作用域
变量的三种作用域:类变量,实例变量和局部变量
public class Demo08 {
//类变量 static
static double salary = 2500;
//属性:变量
//实例变量: 从属于对象; 如果不自行初始化,这个类型的默认值 0 0.0
//布尔值: 默认是false
//除了基本类型,其余的默认值都是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);
System.out.println(demo08.name);
//类变量 static
System.out.println(salary);
}
//其他方法
public void add(){
}
}
常量
public class Demo09 {
//修饰符,不存在先后顺序
static final double PI = 3.14; //final:修饰符,常量:初始化后不能再改变值,不会变动的值
//常量名一般使用大写字符
public static void main(String[] args) {
System.out.println(PI);
}
}
变量的命名规则
- 所有变量,方法,类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词外,后面的单词首字母大写
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man , GoodMan
- 方法名:首字母小写和驼峰原则:add() , addSalary()