【第11天】面向对象程序设计_对象的创建,使用,继承

news2024/11/27 8:27:34

对象的创建及应用

对象的创建

对象可以认为是在一类事物中抽象出某一个特定通过这个特例来处理这类事物出现的问题。在程序语言中通过new关键字来创建对象。前文在讲解构造函数时介绍过每实例化一个对象就会自动调用一次构造函数,实质上这个过程就是创建对象的过程,准确的说可以在程序语言中使用new关键字调用构造函数创建对象。
语法如下:

Test test =new Test();
 Test test =new Test("a");

参数说明,Test是类名,test创建Test类对象,New创建对象操作符。A构造函数的参数。
当用户使用new关键字创建一个对象后,可以使用对象.类成员来获取对象的属性和行为,前文已经提到过,对象的属性和行为在类中是通过类成员变量和成员方法的形式来表示的,所以当对对象获取类成员,时就相应,的获取了,对象的,属性和行为
在这里插入图片描述

对象的销毁

每个对象都有生命周期,当对象的生命周期结束时,分配给该对象的内存地址将会被回收。在其他语言中需要手动回收废弃的对象,但是c#拥有一套完整的垃圾回收机制,用户不必担心废弃的对象占用内存,垃圾回收器将回收无用且占用内存的资源。
在谈到垃圾回收机制之前,首先要了解什么样的对象会被垃圾回收器视为垃圾,主要包括以下两种情况。
1、对象引用超过其作用范围的,被这个对象视为垃圾。
2、将对象赋值为null

类与对象的关系

类是一种抽象的数据类型,但是其抽象的程度可能不同。而对象是一个类的实例,例如将农民设计为一个类,张三和李四就可以作为一个对象。
从这里可以看出张三和李四有很多共同点,他们都在某个农村生活,早上都要出门务农,晚上都会回家,对于这样相似的对象就可以将其抽象为一个数据类型,此处抽象为农民,这样只需要将农民这个类型编写好,程序中就会很方便的创建张三和李四这样的对象,但代码需要修改时,只需要对农民类型进行修改即可。
综上所述,可以看出类和对象的区别类是具有相同或相似结构高度和约束规则的对象组成的集合,而对象是某一类的具体化实例,每一个类都具有某些共同特征的对象的抽象。

继承

继承是面向对象编程最重要的特征之一。它源于人们认识客观世界的过程,是自然界普遍存在的一种现象,比如我们每一个人都要同祖辈和父辈那里继承一些体貌特征,但是每个人却又不同于父母,因为每个人都存在于自己的一些特征,这些特征是独有的,在父母身上并没有体现在程序设计中实现继承,表示这个类拥有它所继承类的所有公有函数或者受保护成员在面向对象编程中被继承的类称为父类或者是基类,实现继承的类成为子类或者派生类。

继承的实现

继承的基本思想是基于某一个基类的扩展至多出一个新的派生类,派生类可以继承基类所有的属性和方法,也可以增加原来鸡类所不具备的属性和方法,或者直接重启鸡肋中的某些方法,例如平行四边形是特殊的四边形。可以说平行四边形类继承了四边形类,这时平行四边形类将所有四边形具有的属性和方法都保留了下来,并基于四边形类扩展一些新的平行四边形类特有的属性和方法。

下面演示一下继承性,创建一个新类test,同时创建另一个新类test 2继承test类,其中包括重写的基类成员方法以及新增成员方法等。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/769867.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

实例018 类似windows xp的程序界面

实例说明 在Windows XP环境下打开控制面板,会发现左侧的导航界面很实用。双击展开按钮,导航栏功能显示出来,双击收缩按钮,导航按钮收缩。下面通过实例介绍此种主窗体的设计方法。运行本例,效果如图1.18所示。 ​编辑…

C++ vector容器注意事项

容量(capacity)和大小(size)的区别 vector 容器的容量(用 capacity 表示),指的是在不分配更多内存的情况下,容器可以保存的最多元素个数;而 vector 容器的大小&#xff…

如何提升环境、生态、水文、土地、土壤、农业、大气等领域的数据分析能力

专题一、空间数据获取与制图 1.1 软件安装与应用讲解 1.2 空间数据介绍 1.3海量空间数据下载 1.4 ArcGIS软件快速入门 1.5 Geodatabase地理数据库 专题二、ArcGIS专题地图制作 2.1专题地图制作规范 2.2 空间数据的准备与处理 2.3 空间数据可视化:地图符号与…

zabbix监控linux主机、监控windows10主机

目录 一、环境准备 1、关闭防火墙 2、准备三台服务器、添加主机声明 3、修改主机名 4、此篇接着上一篇zabbix监控自己的环境下操作,server(192.168.147.135)已经配置好 二、源码安装zabbix 1、下载包、安装依赖包、联网同步清华时间 2…

vue3组件中使用live2d看板娘(仰望星空的sun)

文章目录 前言思路和实现步骤以及遇到的问题原文章地址My备份Git 相关问题問題解決解決index.html中正常放入canvas問題 前言 因为上个官方包版的canvas总是不能按理想状态更好的控制,渲染在vue中,所以我依然想参考“仰望星空的sun”大佬的笔记以及git开…

Echarts 修改背景颜色、全屏自适应屏幕

修改背景色: 全屏自适应屏幕 首先拿到外面的div的高度 通过DOM获取clientHeight即为无论全屏与否都是DIV的整个高度 在通过高度去做自适应就好了

Spring Boot Helper插件免费版的下载

在使用idea的社区版的时候,我们创建springboot项目就要下载springboot helper插件,下载是很简单,但是呢,有一个问题就是: 可以看到它是收费的,要想免费创建spring boot项目那么我们第一可以采用网页版创建&…

纯干货!!!Java后端技术清单(附图)

分享一份最新的Java后端开发技能清单,可根据自身情况以及岗位招聘要求做动态调整,核心思想就是尽可能满足岗位招聘的所有技能要求。 Java后端技术清单: 1.计算机基础:熟练掌握计算机网络、数据结构和算法、操作系统,了解计算机组成原理。 …

❤️创意网页:制作一个绚丽的烟花效果(HTML、CSS和JavaScript实现)

✨博主:命运之光 🌸专栏:Python星辰秘典 🐳专栏:web开发(简单好用又好看) ❤️专栏:Java经典程序设计 ☀️博主的其他文章:点击进入博主的主页 前言:欢迎踏入…

Hutool——国产良心工具包,让你的java变得更甜

目录 1. 基础工具 1.1 日期时间处理 1.2 I/O 1.3 字符串处理 1.4 集合框架 1.5 常见业务 2. 定时任务 3. 验证码 4. 缓存 5. Excel操作 6. Http请求 7. 加密 7.1 加密和解密 7.2 签名和验签 8. 其他说明 8.1 引入Hutool Hutool是国内程序员在工作中总结和积累而…

## 流体力学或湍流理论中壁函数(wall function)

流体力学或湍流理论中壁函数(wall function) 一、壁函数(wall function)概念 在流体力学或湍流理论中,壁函数是基于壁定律得到的无量纲速度 u u^ u与无量纲壁距 y y^ y之间的函数关系。 在对数层区域,速…

SAHI: Slicing Aided Hyper Inference

SAHI是一个用于大规模目标检测和实例分割的轻量级视觉库 概述 目标检测和实例分割是目前计算机视中最重要的应用领域。然而,在实际应中,小目标的检测和大图像上的推理仍然是主要的问题,SAHI 来帮助开发人员用许多视觉实用工具克服这些现实世…

破案了,c知道就是套壳chatgpt

不过也是好事儿,国内不用魔法也可以用gpt了,比一些公司硬要自己开发二流产品强多了

超牛逼黑客帝国代码雨,装X必用

html 1.用法 在电脑桌面新建一个文本文档&#xff0c;然后将代码复制到文本文档里&#xff0c;再将后缀改为".html"。 2.效果图 <!DOCTYPE html> <html> <head><title>黑客帝国代码雨</title> </head><body> <can…

Grafana中table的使用技巧

将多个指标数据显示在同一个Table中&#xff0c;需要用到Transform功能&#xff0c;利用Transform功能可以将数据进行处理只显示想要的数据&#xff1a;

OA低代码平台为企业踏出信息化系统第一步

随着互联网不断的发展&#xff0c;传统的管理模式已经快速进入淘汰的阶段。在这个快速发展的社会&#xff0c;企业若想快速高效的运营&#xff0c;必须踏出第一步改变—信息化系统。对于一个企业而言&#xff0c;企业员工是办公自动化&#xff08;简称OA&#xff09;生存的根本…

OpenCV for Python 第六天:图像的加法运算和加法加权运算

上一篇博客当中&#xff0c;我们认识了如何获取图片的属性&#xff0c;那么这一篇博客我们就来了解一下有关图像的加法和位运算是什么样的&#xff0c;并通过这些运算完成图片的相关操作 文章目录 加法运算cv2.add()cv2.addWeighted()基础操作符 add() 与基础操作符 的对比 每日…

【golang】12、gin 源码解析

文章目录 快速使用返回响应路由匹配pathqueryMultipart/Urlencoded Form 解析请求MultipartFrom MiddleWare github.com/gin-gonic/gin 是 golang 的 web 框架&#xff0c;其用字典树做路由匹配、支持中间件&#xff0c;本文介绍其源码实现。 快速使用 package mainimport (&…

C语言字符串函数学习

前面已经学习了strcpy和strcmp函数&#xff1b;下面继续学习其他的字符串函数&#xff1b; strcat(字符数组1&#xff0c;字符数组2) 字符串连接 把两个字符数组中的字符串连接起来&#xff0c;把字符串2连接到字符串1的后面&#xff0c;结果放在字符数组1中&#xff1b; …

Microsoft Outlook如何撤回已发送的邮件?

打开想要撤回的邮件→More Move Actions→Recall This Message→成功撤回的前提是对方尚未阅读此邮件