Java基础学习的一些小细节
短路运算
当在进行逻辑与运算(两个变量都为真,结果才为真)的时候,若发现前一个变量为假,则根本不会去进行后面一个变量的运算。
例子:
boolean d = (c<4)&&(c++<4);
System.out.println(d);
System.out.println(c);
结果:
false
5
字符串连接符 + ,string
当int a = 10;int b = 20时
System.out.println(""+a+b);的输出结果为1020
System.out.println(a+b+"");的输出结果为30
由此可以看出,在输出时""后的都会转化为String
super关键字
-
使用注意点:
1.super调用父类的构造器,必须在构造方法的第一个
2.super必须只能出现在子类的方法或者构造方法中
3.super和this不能同时调用构造方法
-
super VS this
1.代表的对象不同:
this:本身调用这个对象
super:代表父类对象的应用
2.前提
this:没有继承也可以使用
super:只能在继承条件下才可以使用
3.构造方法
this():本类的构造
super():父类的构造
static关键字
public class Application {
public static void main(String[] args) {
A a = new A();
a.text();
//父类的引用指向了子类
B b = new A();
b.text();
}
}
//重写都是方法的重写,和属性无关
public class B {
public static void text(){
System.out.println("B=>text");
}
}
public class A extends B{
public static void text(){
System.out.println("A=>text");
}
}
有static时,b调用了B类的方法,因为b是用b类定义的
故输出结果为:
A=>text
B=>text
没有static时,b调用的是对象的方法,而b是用A类new的
故输出结果为:
A=>text
A=>text
因为静态方法是类的方法,而非静态是对象的方法,即b是A new出来的对象,因此调用了A的方法
重写
需要有继承关系,子类重写父类的方法!
1.方法名必须相同
2.参数列表列表必须相同
3.修饰符:范围可以扩大但不能缩小:public>Protected>Default>private
4.抛出的异常:范围,可以被缩小,但不能扩大;ClassNotFoundException --> Exception(大)
重写,子类的方法和父类必要一致;方法体不同!
为什么需要重写:
1.父类的功能,子类不一定需要,或者不一定满足!
快捷键:Alt+ Insert ; override;
多态注意事项:
1.多态是方法的多态,属性没有多态
2.父类和子类,有联系 类型转换异常!ClassCastException!
3.存在条件:继承关系,方法需要重写,父类引用指向子类对象! Father f1 = new Son();
- static 方法,属于类,它不属于实例
- final 常量;
- private方法;
浙公网安备 33010602011771号