【Java零基础入门篇】第 ④ 期 - 继承(三)

本文介绍了Java中的继承概念,包括继承的作用、限制以及this和super的使用。同时讲解了成员变量(实例变量和类变量)、局部变量的区别,以及final关键字的用途。此外,还讨论了实例方法和类方法的差异,static代码块的功能,以及对象初始化的顺序。
摘要由CSDN通过智能技术生成

【Java零基础入门篇】第 ④ 期 - 继承(三)


博主:命运之光
专栏:Java零基础入门

在这里插入图片描述

学习目标
1.掌握继承性的主要作用、实现、使用限制;
2.掌握this和super的含义及其用法;
3.掌握方法覆写的操作;
4.掌握final关键字的使用;
5.掌握类变量、实例变量和局部变量的含义和用法;
6.掌握static和final修饰符的作用;


成员变量与局部变量

编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间对象,其方法才可以供外部调用

成员变量—实例变量

定义在类中的变量成员变量,类的成员变量有两种:一种是实例变量,一种是类变量

成员变量—类变量

如果想让一个类的所有实例共享数据,就用类变量。

变量前有关键字static,则为类变量。存储在公共区,属于类所有,所有该类的对象共享这一个变量。

局部变量

定义在方法中的变量叫做局部变量。
局部变量

  • 形参(方法、构造器中定义的变量)
  • 方法局部变量(在方法内定义)
  • 代码块局部变量(在代码块内定义)

注:

1.局部变量除形参外,均需显式初始化(赋值)后才能使用;
2.局部变量的生存周期只存在于方法内方法调用结束,局部变量也就不存在了

实例方法与类方法

🍓实例方法:定义方法时,不使用static修饰,属于对象所有。
🍓
类方法:定义方法时,使用static修饰,是无须创建类的对象
就可以调用的静态方法,静态方法可以通过类名来调用属于类所有所有对象可以共用

实例方法调用: 对象名.方法();
类方法调用: 对象名.方法();或者 类名.方法();

注意:在static方法(类方法)内部只能访问类的static修饰的属性(类变量)或方法,不能访问类的非static的结构(非staitic的属于对象,需先创建对象才能访问)。

类(静态)方法 和 实例方法总结:

  1. 类方法属于类所有,第一次加载类的时候就存在于类的内存中了,不用创建对象就能使用。
  2. 类方法中只能使用类变量(静态变量),因为他们都是在类加载时就存在了。
  3. 类方法中不能使用实例变量,因为实例变量必须在创建了对象后才存在于对象的内存里。
  4. 实例方法是对象创建后才存在,有了实例方法后,类变量和实例变量肯定都存在了,所以实例方法可以使用类变量和实例变量。

static代码块

🍓🍓从上述内容中,可以看出在类体内、方法外面只能定义成员变量,不能写普通java代码。
实际上有一种情况,可以写static代码块。格式如下:
**static { **
普通java代码;
}

利用静态代码块可以对一些static变量进行赋值
🍓以 “static{” 开始,到 “}” 结束,中间可以写普通java代码;
🍓这整段代码可以放在类体内,方法外面,称为static代码块;
🍓static代码块的执行是在加载类的时候执行,不需要对象。

final修饰符

Java中声明类、变量和方法时,可使用关键字final来修饰,表示“最终的”。①final标记的类不能被继承。提高安全性,提高程序的可读性。
final标记的方法不能被子类覆写
final标记的变量(成员变量或局部变量)即称为常量名称大写,且只能被赋值一次。

  • final标记的成员变量必须在声明时或在每个构造器中或代码块中显式赋值,然后才能使用。
  • final double MY_PI = 3.14;

无论是类变量、实例变量还是局部变量,使用final修饰符,则该变量初始化后,它的值就不能再改变了,因此也可以称为常量。

对象的初始化顺序

🍓🍓类变量(静态变量)、实例变量、类方法(静态方法)、实例方法、静态代码块、构造方法等的执行顺序称为对象的初始化顺序
1.无继承的执行顺序为:
(1)类变量和static代码块。
(2)实例变量。
(3)构造方法。
其中1)只执行一次(2)、(3)要根据创建的对象个数决定,创建几个对象就重复执行几次。
2.有继承的执行顺序为:
(1)父类的静态变量(类变量)和静态代码块(只执行一次);
(2)子类的静态变量(类变量)和静态代码块(只执行一次);
(3)父类的实例变量(根据创建对象的个数决定,每创建一个对象执行一次);
(4)父类的构造方法(根据创建对象的个数决定,每创建一个对象执行一次);
(5)子类的实例变量(根据创建对象的个数决定,每创建一个对象执行一次);
(6)子类的构造方法(根据创建对象的个数决定,每创建一个对象执行一次);
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

命运之光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值