面向对象——OOP(三)(关键字之this、super、package、import、Static、final)

关键字:this:表示当前对象本身
●  调用属性、方法:表示这个方法所属对象的引用

●  调用构造器:表示该构造器正在初始化的对象

面向对象——OOP(三)(关键字之this、super、package、import、Static、final)面向对象——OOP(三)(关键字之this、super、package、import、Static、final)

注意:使用this()必须放在构造器的首行。构造器之间互调,保证至少有一个没有使用this,避免死循环
------------------------------------------------------------------------------------------------------------------
关键字:super:用于访问父类中的属性、成员方法、在子类构造方法中调用父类的构造器
面向对象——OOP(三)(关键字之this、super、package、import、Static、final)
注意:当子父类出现同名成员时,可以用super进行区分。super不仅限于直接父类(祖父类都行)。super和this的用法相像,this代表本类对象的引用,super代表父类的内存空间的标识

调用父类的构造器:

面向对象——OOP(三)(关键字之this、super、package、import、Static、final)面向对象——OOP(三)(关键字之this、super、package、import、Static、final)

●  子类中所有的构造器默认都会访问父类中空参的构造器
●  当父类没有空参构造器时,必须显示的调用“this(形参列表)”或“super(形参列表)”且必须在首行
●  如果子类构造器中既未显式调用父类或本类的构造器,且父类中又没有无参的构造器,则编译出错
------------------------------------------------------------------------------------------------------------------
this和super的区别:
面向对象——OOP(三)(关键字之this、super、package、import、Static、final)
------------------------------------------------------------------------------------------------------------------
关键字:package:作为Java源文件的第一条语句,指明该文件中定义的类所在的包
面向对象——OOP(三)(关键字之this、super、package、import、Static、final)
●  格式:package  包名 . 子包名
注意:包对应于文件系统的目录,用“.”来指明包)的层次。包通常用小写单词,类名首字母通常大写
------------------------------------------------------------------------------------------------------------------
关键字:import:引入指定包层次下所需要的类或全部类,告诉编译器到哪里去寻找类
●  出现在package语句之后、类定义之前
●  一个源文件中可包含多个import语句
面向对象——OOP(三)(关键字之this、super、package、import、Static、final)
注意:java.lang包为自启动包,不需要显示声明。import语句不是必需的,可直接使用包的全类路径名调用方法和属性(如:new p1.test.display( ) )。可以使用import  lee.* ,导入lee包下的所有类。而lee包下sub子包内的类则不会被导入。import  lee.sub.*

------------------------------------------------------------------------------------------------------------------

关键字:static:静态的,使用范围:修饰属性、方法、代码块、内部类
特点:
●  随着类的加载而加载,生命周期要早于非静态的结构,同时被回收也要晚于非静态的结构
●  优先于对象存在
●  修饰的成员,被所有对象所共享,在类中是独一份的
●  访问权限允许时,可不创建对象,直接被类调用
Static修饰成员变量:(这个成员变量叫做“类变量”)
●  同一个类中的多个对象共享这个类中的一个“类变量”(非static的成员变量有区别)
●  static修饰的变量存放在内存的静态域中
●  可以直接通过“类名称.类变量”的方式调用
●  在方法中可以直接使用“类变量”,但是不能声明静态的变量
Static修饰方法:
●  可以直接通过“类名称.方法名”的方式调用
●  能调用静态的成员(方法和属性),而不能调用非静态的成员。反之,非静态的方法可以调用静态的成员

●  静态的方法内是不可以有this或super关键字的(this、super表示的是对象本身)

面向对象——OOP(三)(关键字之this、super、package、import、Static、final)

------------------------------------------------------------------------------------------------------------------

关键字:final:最终的,可以修饰类、属性、方法
●  修饰类:表示这个类是最终的,不能被继承(继承,子类可以重写修改父类)如:String类
●  修饰方法:表示这个方法是最终的,这个方法不能被重写

●  修饰属性:即称为常量,当这个属性的值一旦被初始化,就不能被修改

面向对象——OOP(三)(关键字之this、super、package、import、Static、final)

注意:常量名大写,且只能被赋值一次。final标记的成员变量必须在声明的同时或在每个构造方法中或代码块中显式赋值,然后才能使用。static final叫做“全局常量”
------------------------------------------------------------------------------------------------------------------
自己整理,有些地方是扒拉的,如有侵犯,还望告知