目录
字面值规则,运算规则,字符型char
成员变量与局部变量的区别
重写(Override)与重载(Overload)的区别
重写(Override):
重载(Overload):
几种常见关键字的用法
this关键字
super关键字
private关键字
final关键字
static关键字
字面值规则
//规则1:整数的字面值类型为int
int x=99999;
//----------------byte y=300;//报错,超出byte范围
//----------------int z=99999999999999; // 报错,虽然是int类型,但是超出int范围
long h=999999999999999l;//如果要定义long类型需要加后缀l
//规则2:浮点型的字面值类型为double
double d=3.14;
//----------------float f=3.14//报错,3.14认为自己是double类型
float f=3.14f;
double d2=3d;//如果要定义的小数是整数,最好加D/d方便阅读
//规则3:byte short char三种比int小的类型,可以使用范围内的值直接赋值,
byte n=1;
//-----------------byte q=128;//报错,超出了byte的取值范围
char m=97;
//规则4:字面值后缀
//规则5:字面值前缀 0b 0 0x
//二进制 八进制 十六进制
System.out.println(100);
System.out.println(0b100);
System.out.println(0100);
System.out.println(0x100);
//基本类型转换 小到大,直接转 大到小,强制转 浮变整,小数没
//类型能否转换,取决于类型的取值范围,而不是字节数,字节数只能做大概的参考
//byte short char int long float double
int u=999;
byte b3=(byte)u;//大到小 强制转换
System.out.println(b3);
float a=0.0f;
int b=0;
System.out.println(a/b);
字符型char
成员变量与局部变量的区别
1.定义的位置不一样
成员变量:在方法的外部,直接写在类里
局部变量:在方法的内部
2.作用的范围不一样
成员变量:在整个类里都可以通用
局部变量:只有方法当中才可以使用,出了方法就不能再用了
3.默认值不一样
成员变量:如果初始化没有被赋值时,系统会默认赋值
局部变量:没有默认值,如果想要使用,必须手动进行赋值,否则编译不通过
注意:方法的参数列表中传入的参数也称作局部变量,我们在方法中直接打印并不会报错,是因为当此方法被调用的时候必然会手动赋值
4.内存位置不一样
成员变量:位于堆内存中
局部变量:位于栈内存中
5.生命周期不同
成员变量:随着对象的创建而诞生,随着对象被垃圾回收而消失,生命周期相较局部变量要长一点
局部变量:随着方法被调用
进栈而进栈,随着方法的被调用结束出栈消失而消失
重写(Override)与重载(Overload)的区别
重写(Override):
也称作方法的覆盖或者复写,前提是需要有继承关系,其次是方法的名称相同,参数列表也相同;
特点是:创建的是子类对象,则优先用子类方法;
子类方法的返回值类型范围必须是小于等于父类方法的返回值类型范围;
子类方法方法抛出的异常要小于等于父类方法抛出的异常;
子类方法的权限修饰符必须大于等于父类方法的权限修饰符;
权限修饰符大小关系:public>protected>(default)>private
这里的(default)不是关键字default,而是什么都不写,留空;
重载(Overload):
多个方法的方法名称相同,但是参数列表不相同(个数不同,类型不同,多类型的顺序不同);
特点:当我们在调用方法的时候,只需要记住一个方法的名称,并且保证传入不同的参数,就可以实现不同的功能;
例如:我们在写打印语句System.out.println();语句时,println();方法底层就是利用了重载的方式;



