java关键字和构造方法学习笔记

1. java学习笔记

1.1 super和this关键字

super关键字:

子类继承父类,如果子类重写了父类的方法后还想继续访问父类的非private变量或方法,就可以通过super关键字来实现对其父类成员的访问,super指向当前对象的父类的引用。

  • 使用super关键字访问父类被重写隐藏的非private方法,调用格式为:super.父类非private方法;

  • 使用构造方法创建子类对象的时候,在子类的构造方法的方法体第一行有一条隐藏的super();意思是创建子类对象的时候会先调用其父类的无参构造方法(前提是父类中没有有参的构造方法,或者含有有参构造方法和无参构造方),如果父类中含有有参构造方法却没有无参构造方法的话,则子类中需要显示地用super(参数类型参数)来指明调用父类的哪个构造方法,其中super()中的参列表数就是需要调用的父类构造方法的参数列表。

this关键字:

同super类似,只不过,this所指向的是当前对象的引用。

  • 使用this在方法内部可以区别类中相同名称的实例变量和局部变量。当类中一个方法的参数(局部变量)同类中的实例变量的数据类型和名称都相同的时候,那么实例变量就会被隐藏起来,如果在该方法内部还想访问被隐藏起来的实例变量的时候就可以使用this.实例变量名,此时访问的变量就是类的实例变量而不是与其同名的局部变量了;

  • 在构造方法中调用本类的其他构造方法时,就要在构造方法的第一行使用this(参数类型参数)来指明调用本类的那个构造方法。

1.2. final和static关键字

fianl关键字:

final意为最终的,不可改变的。final可以用来修饰类、属性、变量和方法。

  • final修饰类中的属性或变量(基本类型和引用类型):被final关键字修饰的属性或变量一旦被赋予了初值,后期就不能改变了。这里需要注意的是:被fianl修饰的的基本数据类型一旦被赋初值后就不能再改变了,而被final修饰的引用变量被赋予初值后,该变量的引用就不能再被修改了,但该引用所指向的对象的属性内容是可以改变的。

  • final修饰类中的方法 :被final修饰的方法不能改变,也就是说不能该方法不能被重写。

  • final修饰类:被final修饰的类不能被继承,因而final关键字不能与abstract关键字一起使用。

static关键字:

static意为静态的,被static修饰的变量称为静态变量,被static修饰的方法称为静态方法。

  • 类中的static变量和static方法不是属于该类的对象的,而是属于这个类的。也就是说当我们创建一个类的两个不同对象的时候,这两个对象都会含有他们自己的属性内容和方法,一个对象改变其属性内容对了另一个对象的属性内容不会有影响,因而说它们自己饿属性和方法是属于对象的;而static变量是属于类的,也就是说这个类的所有对象共享一个变量,一个对象改变了这个static变量的内容后,其他对象访问static变量时访问到的是被前一个对象修改后的内容,所以说被static修饰的变量或方法是对象的共享变量或共享方法。

  • static变量是属于类的,当初被加载的时候就已经被初始化了,因而除了可以用对象调用外还可以用类名调用,建议使用类名调用,因为static属性或方法的初始化在对象的创建之前。

  • static方法只能访问static变量和访问,不能访问非static的变量和方法,但非static的变量和方法可以访问static的变量和方法。

1.3 构造方法

java文件被编译成class文件时,在子类的所有构造函数中的第一行(第一个语句)会默认自动添加 super() 语句,在执行子类的构造函数前,总是会先执行父类中的构造函数。

  • 构造方法不能被继承,如果子类想调用父类的有参构造方法,就需要在其构造方法的第一行显示地使用super()来指明调用父类的哪个构造方法。

  • 执行父类构造函数的语句只能放在函数内语句的首句,不然会报错。

  • 如果没有给类写构造方法,那么系统会给该类隐式地加一个默认的无参构造方法。如果给类写了构造方法,系统就不会再给该类提供一个默认的无参构造方法。

1.4 java标识接口

内部没有声明任何方法或变量的接口称为标识接口,也就是说实现该接口的类不需要重写接口中的东西。标识接口仅仅起一个标识作用,标识其实现类拥有某种特性。
例如Serializable接口,它就是一个标志接口,标识其实现类的对象是否具有序列化和反序列化的功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值