首页 > 其他分享 >面向对象应用及this关键字

面向对象应用及this关键字

时间:2024-08-21 17:56:31浏览次数:7  
标签:变量 构造方法 关键字 对象 成员 面向对象 应用 方法 属性

目录

1:面向过程与面向对象

2.对象与类

3.创建对象

4.面向对象的一些应用特点

5.构造方法

6.对象创建的过程

7.this关键字


1:面向过程与面向对象

面向过程:以整个功能的执行过程为基准, 思考过程中每一步的操作。

面向对象:基于面向过程,不仅要思考过程中的每一步,还需要思考每一步都应该是由谁(对象)来实现的

2.对象与类

对象:对象具有一定的特征和行为。 这里的特征和行为都是偏概念性的。 只有应用具体的对象时,这些概念才具体。

类:类是具有相同特征和行为的对象的抽象。 是一堆对象的抽象概念。

类与对象的关系:类是对象的抽象(概念,模板)  对象是类的具体实例。

类的定义:

  • 类中包含特征和行为

  • 编码时,定义方法来代表类的行为

  • 编码时,定义变量来代表类的特征, 这个变量又称为属性。

  • 所以,类中包含了属性和方法。

3.创建对象

①创建

  • 当我们使用new关键字的时候, 表示创建了一个引用类型的数据

    • 引用类型的数据比较复杂,不能像基本类型的数据一样,直接存储在变量中

    • 需要先存储在堆区中,同时会被分配一个内存地址

    • 接下来我们使用的都是这个内存地址。通过地址,间接的使用引用类型的数据。

  • 说明对象也是一个引用类型的数据。

  • 通过地址间接的操作对象(存,取,使用)

②使用

情况一:

  • 对象本身,是一个引用类型的数据

  • 所以他也可以像其他的所有数据一样,进行操作 如:存储,打印等。

情况二:

  • 对象包含属性和方法

  • 所以使用对象,其实就是使用对象中的属性和方法 。 类似于数组

4.面向对象的一些应用特点

对象成员

  • 对象包含属性和方法。

  • 我们称这个属性和方法都是对象的成员

  • 各自称为:成员属性 (成员变量,对象属性), 成员方法(对象方法)

  • 在成员方法中,可以使用自己的成员变量

成员变量与局部变量

  • 成员变量就是类对象中的变量,对于类对象中的所有方法是共享的。

  • 局部变量一般就是方法中的变量 。 (花括号中的变量)

5.构造方法

  • 类对象中可以包含属性和方法

  • 方法包含一个特殊的情况,就是构造方法

  • 构造方法又称为构造器

  • 构造方法特点

    1. 构造方法名称必须与类名相同

    2. 构造方法没有返回类型

    3. 目前,构造方法只能在new创建对象时被调用

    4. 不能修饰符 static , final ,abstract

  • 其余与普通方法相同

    • 异常声明

    • 访问权限

    • 参数列表

    • 方法重载

构造方法的作用是什么?

  • 创建对象的同时,为对象的属性初始化赋值

  • 或者创建对象的同时,执行一些初始化操作

6.对象创建的过程

引入构造方法后,对象创建的过程是什么样的

  1. jvm会根据new关键, 开辟对象的存储空间, 也就是创建了一个对象

    只不过空间中要放什么内容,还不知道。需要类模板

  2. 根据构造方法,找到类模板 。因为构造方法的名字与类名相同

    一旦找到类模板,就会按照类模板中声明的信息 产生变量和方法

    同时这个属性变量会有默认值

  3. 接下来会调用构造方法,为属性变量初始化赋值

7.this关键字

第一个作用,用来调用重载的构造方法

第二个作用,this关键字表示方法中的一个默认参数,存储当前对象的地址

对象外部,主方法可以根据变量中存储的这个对象地址,调用对象的属性和方法

对象内部的方法中,可以根据this变量中存储的自己这个对象的地址,调用自己这个对象的属性和方法

对象内部的方法中,调用对象内部的其他方法和属性时,可以不使用this。默认调用的就是自己的东西

(this存储对象地址的意义)

1.当方法中的局部变量与成员变量同名时,可以使用this来区分哪一个是成员变量

2.在jvm运行的过程中,对象内部的方法执行时,都会自动的使用this


标签:变量,构造方法,关键字,对象,成员,面向对象,应用,方法,属性
From: https://blog.csdn.net/lzp122390/article/details/141365935

相关文章

  • 短视频生成与AI的结合应用,Web/App RPA 智能化应用
    在这个日新月异的时代,人工智能(AI)与自动化技术的融合正以前所未有的速度重塑着各行各业。你是否梦想过,在信息的海洋中自动筛选出精华,用创意点亮每一篇内容,同时让繁琐的工作流程变得轻松高效?我们诚邀您参加即将开启的“AI自动化应用开发”公开课第3期,一同探索如何用好AI与自动化,让您......
  • 使用 refreshNuxtData 刷新 Nuxt应用 中的数据
    title:使用refreshNuxtData刷新Nuxt应用中的数据date:2024/8/21updated:2024/8/21author:cmdragonexcerpt:refreshNuxtData是Nuxt3中一个非常有用的函数,能够帮助你在数据更新后及时刷新页面。通过了解如何刷新所有数据和刷新特定数据,你可以更灵活地控制数据更......
  • 什么是生信分析?深入探讨生物信息学的技术、方法与广泛应用
    介绍生物信息学分析,简称生信分析,是一个结合了生物学、计算机科学、信息学和统计学的多学科领域,旨在处理、分析和解释海量的生物数据。随着现代生物技术的发展,尤其是高通量测序(Next-GenerationSequencing,NGS)技术的广泛应用,生物研究的维度和深度都发生了巨大的变化。生信分......
  • android开发通过wireshark实现flutter应用抓包
    android开发通过wireshark实现flutter应用抓包1.为什么要使用wireshark抓包1.有了上一篇Charles的抓包文章,为什么还写这篇抓包文章呢?单独论http请求抓包的话Charles比wireshark好用2.这是因为flutter应用使用的不是系统的证书,而是使用flutter框架自己的证书,这就导致了Char......
  • 第六章 面向对象
    一、类与对象自然界事物由许多实体(对象)组成,相似的对象划分为一类类:同一类型对象(事物)的抽象描述,定义了这一类对象共同的静态和动态属性对象:计算机语言对一个具体事物的描述,静态属性(成员变量)和动态属性(方法)的封装体属性:事物的静态状态方法:事物的动态行为类和对象的关系:类是......
  • 【python】Python实现XGBoost算法的详细理论讲解与应用实战
    ✨✨欢迎大家来到景天科技苑✨✨......
  • Zookeeper应用场景实战二
    目录1.Zookeeper分布式锁实战1.1什么是分布式锁1.2基于数据库设计思路1.3基于Zookeeper设计思路一1.4基于Zookeeper设计思路二Curator分布式锁示例1.5Curator可重入分布式锁工作流程1.6总结2.基于Zookeeper实现服务的注册与发现2.1设计思路2.2Zo......
  • Datawhale X 魔搭 AI夏令营-大模型应用(三)
    一.部署到服务器上1.将搭建好的知识问答AI助手(知心智医)搭建到服务器,并且配置了一个域名http://cardiorag.top:8502/2.在这过程中有远程登陆,服务器映射问题,好在都解决了,就是gpu算力时时刻刻在烧钱二.使用ragas框架进行测评1.遇到的主要问题是,测试数据集,评分数据集的产生,测评......
  • 什么是静态应用程序安全测试 (SAST)?
    静态应用程序安全测试(SAST)是分析和测试应用程序源代码是否存在安全漏洞的过程。软件开发人员使用SAST在软件开发生命周期(SDLC)早期(即应用最终发布之前)查找并修复源代码中的缺陷。SAST的工作原理是什么?SAST是一种白盒测试方法,通过直接面向源代码、字节码和二进制文件,检......
  • 《有限元分析与应用》
    第1讲引论力学的分类《有限元分析与应用》,曾攀,清华大学出版社质点描述轨道——质点力学刚体描述姿态——刚体力学变形体描述姿态的耦合影响——弹性力学复杂形状变形——弹塑性力学有限元分析的力学基础是弹性力学,方程求解的数学原理是加权残值法和泛函极值原理,实现的方......