1.常规调用
使用局部变量:局部变量名
使用成员变量:对象名.成员变量名
使用成员方法:对象名.成员方法名(参数)
2.当方法的局部变量和类中的成员变量重名的时候,根据“就近原则”,优先使用局部变量,
想要访问类中的成员变量可以使用this关键词
格式:this.实例变量名 (谁调用的方法,谁就是this)
3.区分重名的三种变量的访问:
(1)局部变量: 直接写成员变量名
(2)本类的成员变量: this.成员变量名
(3)父类的成员变量: super.成员变量名
4.注意:无论是成员方法还是成员变量,如果没有都是向上找父类,绝对不会向下找子类的。
5.当在某个变量前加上private修饰词时,该变量在所属类中不受影响,
但在其他类中不能够随意访问,需要设置getter/setter进行访问
6.this关键字(访问本类内容)的三种典型用法:
(1)在本类的成员方法中访问本类中的成员变量
(2)在本类的成员方法中调用本类的另一个成员方法
(3)在本类的构造方法中调用本类的另一个构造方法
在用法(3)中要注意:
①this()和super()特点相同,在构造方法中有且只有一个,还必须是构造方法中的第一个语句
②因为this()和super()相同的的特点,所以它们不能在一个构造方法中同时使用
7.super关键字(访问父类内容)的三种典型用法:
(1)在子类成员方法中访问父类的成员变量
(2)在子类成员方法中调用父类的成员方法
(3)在子类构造方法中调用父类的构造方法
8.使用staic关键字修饰的,无论是静态变量还是静态方法都推荐使用类名称调用:有static关键字,不需要创建对象,
直接就能通过类名称调用它(类名称.静态方法名(参数)/静态变量名),在本类中使用时可以不加类名称
注意事项:
①静态(方法)不能直接访问非静态(变量) --->因为在内存中是【先】有的静态内容,【后】有的非静态内容
②静态方法当中不能使用this --->因为this代表当前调用方法的对象,而调用静态方法不需要对象。
③根据类名称访问静态成员变量,这个过程跟对象没有任何关系,只和类相关。
9.在父子类的继承关系中(多态写法同样适用)
(1)如果成员变量重名,则创建子类对象时,访问成员变量有两种情况:
①直接通过子类对象访问成员变量:创建对象时等号左边是谁,就优先用谁的,没有则向上找(编译看左边,运行还看左边)
②间接通过成员方法访问成员变量:该方法属于谁,就优先用谁的,没有则向上找(就近原则)
(2)访问重名的成员方法时,new的是谁,就优先用谁的,没有则向上找。(编译看左边,运行看右边)
11.接口中静态方法的调用通过接口名称(与类中的类似),但是不能通过实现类或是实现类的对象来调用静态方法(定义在类中
的静态方法能通过对象来调用)--->因为一个实现类可能对接多个接口,静态方法会产生冲突
格式:接口.静态方法名(参数)
12.接口的默认方法可以被实现类直接调用,接口的私有方法不能被实现类调用
13.当直接父类中定义的方法和所实现的接口中定义的方法发生冲突时,优先使用直接父类中的方法。
以上即为个人对JAVA中变量及方法调用的小结,如有不当之处,希望各位指出!