this和super的用法
this:用在一个方法中,表示调用当前方法的对象
用在构造方法中,表示调用当前类的另外一个构造方法,具体用哪一个,取决于参数列表
super:
用在一个方法中,表示当前类的父类的对象,用来调用父类的方法
用来在子类中调用重写之前的方法
用在子类的构造方法中,表示调用父类的构造方法
在子类的构造方法中。默认会调用父类的无参构造方法
静态关键字的使用
static 静态的
可以用来声明类,属性,方法和代码块
static属性:类属性 该类所有的对象共享的一个变量
非静态属性:成员属性 该类的每一个对象都独立的有一个变量
static方法:类方法
非static方法:成员方法
调用成员方法的时候,根对象本身的类型[new的类型]有关系
在调用类方法的时候,只跟变量的类型有关系
static属性和static方法可以通过对象来调用
但通常情况下都直接通过类名调用
在静态方法中不能够直接调用非静态的属性和方法
static类:一般用来定义内部类[嵌套类]
static代码块
static{
}
==========================================================
程序的执行顺序:
1.加载类,将class文件加载到JVM的内存中[开辟类的内存空间]
加载的时候,所有的static的属性和代码块都会按顺序执行
2.开始执行主函数
所有的方法[static方法和成员方法]必须要调用才会执行
创建某个类的对象[开辟对象的内存]
开辟对象的内存空间的时候,所有的成员属性和非静态代码块会按顺序执行
=============================================================
public class A{
public A(){
System.out.println(“A”);
}
}
public class B extends A{
public B(){
System.out.println(“B”);
}
}
public class C{
A a = new A();
static B b = new B();
public C(){
System.out.println("C");
}
public static void change(){
B b = new B();
}
public static void main(String[] args){
C.change();
}
}