面向对象4

本文详细探讨了Java编程中this关键字的使用,包括在方法和构造器中的作用以及如何区分属性和形参。同时,文章解释了继承性的概念,其好处、格式以及如何正确运用在类设计中,强调了继承的is-a关系和Java的单继承特性。
摘要由CSDN通过智能技术生成

一、this关键字的使用

1、目前可能出现的问题?及解决方案?

我们在声明一个属性对应的setXxx方法时,通过形参给对应的属性赋值。如果形参名和属性名同名了,那么该如何在方法内区分这两个变量呢?

解决方案:使用this。具体来讲,使用this修饰的变量,表示的是属性。没有用this修饰的,表示的是形参。

2、this可以调用的结构:成员变量、方法、构造器

3、this的理解:当前对象(在方法中调用时)或当前正在创建的对象(在构造器中调用时)

4.1、this调用属性和方法

【针对于方法内的使用情况:(准确的说是非static修饰的方法)】

一般情况:我们通过对象a调用方法,可以在方法内调用当前对象a的属性或其他方法。此时,我们可以在属性和其他方法前使用"this.",表示当前属性或方法所属的对象a。但是,一般情况下,我们都选择省略此"this."结构。 特殊情况:如果方法的形参与对象的属性同名了,我们必须使用"this."进行区分。使用this.修饰的变量即为属性(或成员变量),没有使用this.修饰的变量,即为局部变量。

【针对于构造器内的使用情况:】 一般情况:我们通过构造器创建对象时,可以在构造器内调用当前正在创建的对象的属性或方法。此时,我们可以在属性和方法前使用"this.",表示当前属性或方法所属的对象。但是,一般情况下,我们都选择省略此"this."结构。 特殊情况:如果构造器的形参与正在创建的对象的属性同名了,我们必须使用"this."进行区分。使用this.修饰的变量即为属性(或成员变量),没有使用this.修饰的变量,即为局部变量。

4.2 、this调用构造器

格式:"this(形参列表)" 我们可以在类的构造器中,调用当前类中指定的其它构造器 要求:"this(形参列表)"必须声明在当前构造器的首行 结论:"this(形参列表)"在构造器中最多声明一个 如果一个类中声明了n个构造器,则最多有n-1个构造器可以声明有"this(形参列表)"的结构

二、继承性

1、继承性的理解

生活上:财产的继承、颜值的继承 代码层面: 自上而下:定义了一个类A,在定义另一个类B时,发现类B的功能与类A相似,考虑类B继承于类A 自下而上:定义了类B,C,D等,发现B、C、D有类似的属性和方法,则可以考虑将相同的属性和方法进行抽取,封装到类A中,让类B、C、D继承于类A,同时,B、C、D中的相似的功能就可以删除了。

2、继承性的好处

  • 继承的出现减少了代码冗余,提高了代码的复用性。

  • 继承的出现,更有利于功能的扩展。

  • 继承的出现让类与类之间产生了is-a的关系,为多态的使用提供了前提。

  • 继承描述事物之间的所属关系,这种关系是:is-a的关系。可见,父类更通用、更一般,子类更具体。

3、继承的格式:

class A{
    //属性、方法
}
​
class B extends A{
​
}

继承中的基本概念:

类A: 父类、superClass、超类、基类 类B: 子类、subClass、派生类

4、有了继承性以后:

子类就获取到了父类中声明的所有的属性和方法。 但是,由于封装性的影响,可能子类不能直接调用父类中声明的属性或方法。 子类在继承父类以后,还可以扩展自己特有的功能(体现:增加特有的属性、方法) extends:延展、扩展、延伸 子类和父类的理解,要区别于集合和子集不要为了继承而继承。在继承之前,判断一下是否有is-a的关系。

5、默认的父类:

Java中声明的类,如果没有显式的声明其父类时,则默认继承于java.lang.Object

6、补充说明:

Java是支持多层继承。 概念:直接父类、间接父类 Java中的子父类的概念是相对的。 Java中一个父类可以声明多个子类。反之,一个子类只能有一个父类(Java的单继承性)

  • 11
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值