自学java--2
面向对象的难点:常考虑解决问题的方法,而不会把方法抽象成类后再去解决问题。
jdk中提供了一个反编译工具javap.exe:用dos命令 javap+类名,来反编译一个类,查看累的具体详情。
实例对象都有各自独立的数据拷贝,但是他们都只有公用的一个方法拷贝。
this变量会被自动设置为应用对象的特定对象,会执行this所代表的的特定对象的特定操作。
static 修饰的静态方法只属于类本身,可以直接用类名调用。
静态方法中不能调用非静态的内容,反之可以!
开发过程中要有内存模型的概念。
用this(参数)调用构造函数时,必须要放在函数第一行
initalized:初始化
关键字final定义常量,通常一大写形式表示,通常附上初始值,还可以加上static节约内存(但此时要立即初始化,否则后面无法赋值)。
extends继承已有类,被继承的类为父类/超类/基类,新类为子类或派生类。不允许多继承。
方法覆盖(override):子类中与父类同名,返回类型,参数类型均相同的方法。
特殊变量super:提供了对父类被覆盖方法或成员变量的方法的访问。
每个子类构造方法都隐藏了super()的调用,如果父类没有这种构造函数那么编译时会出现错误。父类构造方法是不可以被继承的,只能用super。
多态性:当我们将子类的引用传给声明为父类对象的变量时,如果子类有该方法则调用该方法,如果子类没有该方法则调用父类的方法。好处是可以根据对不同对象的应用,来调用不同对象的方法(运行时多态)。重载是编译时刻的多态。
对象名 instanceof 类名,判断实例所属类型,返回bool类型的数据。