this关键字、super关键字、static关键字、final关键字
来源:互联网 发布:淘宝二手ps4哪家好 编辑:程序博客网 时间:2024/06/05 05:22
this关键字
this表示的是当前对象本身,更准确地说,this代表当前对象的一个引用,可以调用该类的属性,方法,构造器。
当在方法内需要用到调用该方法的对象时就可以使用this。
使用this调用成员变量
当形参与成员变量重名时,如果在方法内部需要使用成员变量,必须添加this来表明该变量时类成员
public Persion(String name, int age) {this.name = name;this.age = age;}
使用this调用方法。
调用当前对象的其他方法(可以省略)
位置:任意
public void getInfo(){System.out.println("姓名:" + name) ;this.speak();}public void speak(){System.out.println(“年龄:” + this.age);}
构造方法中使用this来调用其它构造方法。
位置:必须是第一条语句
public Persion(String name, int age) {this.name = name;this.age = age;}public Persion(String name, int age,double salary) {this(name,age);this.salary = salary;}
super关键字
使用场景
super可用于调用父类中定义的成员方法
super可用于在子类构造方法中调用父类的构造器,必须在构造器中的第一句,且不能同时出现this调用本类中其他的构造方法
this和super的区别
No.
区别点
this
super
1
访问属性
访问本类中的属性,如果本类没有此属性则从父类中继续查找
访问父类中的属性
2
调用方法
访问本类中的方法
直接访问父类中的方法
3
调用构造器
调用本类构造器,必须放在构造器的首行
调用父类构造器,必须放在子类构造器的首行
4
特殊
表示当前对象
无此概念
static关键字
static修饰成员变量
static修饰的成员变量为静态成员变量 ,或者叫做: 类属性,类变量.注意:static不能修饰局部变量。
它为该类的公用变量,属于类,对于该类的所有对象来说,static成员变量只有一份,被该类的所有对象共享,如果一个对象修改了类变量都将影响其他对象对这个类变量的调用
可以使用”对象.类属性”来调用。不过,一般都是用“类名.类属性”
static变量存放在静态域中
static修饰方法
不需要对象,就可以调用(类名.方法名)
静态方法不能以任何方式引用this和super关键字,因为this,super都是对象的引用,它在内存中是在静态方法加载后出现的,所以无法访问
静态方法中不可以访问非静态变量,非静态方法,只能访问静态变量和静态方法
理解:加载类的时候就加载静态变量和静态方法,此时可能还没有创建对象,所以非静态变量和非静态的方法还没有分配空间,无法访问
非静态方法中可以访问静态方法或者静态变量
理解:加载类的时候就已经加载静态变量和静态方法,创建对象后,非静态变量和非静态的方法才分配空间,此时静态变量和静态方法已经存在,可以访问
重载的方法需要同时为static的或者非static的
static修饰代码块
如果希望加载后,对整个类进行某些初始化操作,可以使用static静态代码块。
类第一次被载入时先执行static代码块;类多次载入时,static代码块只执行一次;Static经常用来进行static变量的初始化。
是在类初始化时执行,不是在创建对象时执行。
静态初始化块中不能访问非static成员。
static修饰内部类
public class Singleton {private Singleton() {}private static class SingletonHolder {private final static Singleton instance = new Singleton();}public static Singleton getInstance() {return SingletonHolder.instance;}public static void main(String[] args) {Singleton s1 = Singleton.getInstance();Singleton s2 = Singleton.getInstance();System.out.println(s1 == s2);}}
final关键字
1.final修饰变量,成为常量,值不能再变化
--final修饰基本数据类型,值只能赋值一次,后续不能再赋值
--final修饰引用数据类型,不能变化的引用变量的值,可以变化的是对象的属性
2.final修饰方法,不能被子类重写
3.final修饰类,不能再有子类,如String类、StringBuffer、System
4.final不能修饰构造方法
5.static final 修饰的变量是全局静态常量
- this关键字、super关键字、static关键字、final关键字
- static this super final 关键字
- static, super, final, this关键字
- this super static final关键字
- 关键字 this static super final
- Super、Final、this关键字
- JAVA基础--关键字 final/static/this/super
- 论关键字this,super,final,static
- this static final super关键字使用详解
- JAVA基础--关键字 final 、static、this、super
- static this,super关键字
- this,super&final关键字说明
- super关键字,this关键字,及其两者区别.final关键字
- Java关键字:this、super、static
- Java关键字:static、this、super
- java关键字static,this,super
- 关键字static、super与this
- this关键字、static关键字
- 【备忘】德哥PostgreSQL 数据库优化 培训视频【18集】
- DialogFragment 的错误
- 浏览器禁用Cookie后PHP怎样实现session会话保持
- javascript浏览器对象之location对象
- kubectl 命令集合
- this关键字、super关键字、static关键字、final关键字
- 考研一英语笔记
- MySQL中大数字加减,不产生千位符和科学计数
- 从字节数组中读取整型(最大四位)
- NLP指导
- Apollo介绍
- 图片加载工具类
- Linux系统调用列表
- 运算符 常量与变量 数据类型