类和对象——(3)再识对象

2023-12-01 11:28
文章标签 对象 再识

本文主要是介绍类和对象——(3)再识对象,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

归纳编程学习的感悟,
记录奋斗路上的点滴,
希望能帮到一样刻苦的你!
如有不足欢迎指正!
共同学习交流!
🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝
     你说那里有你的梦想,你说只要你足够努力就能成功!

一起加油!

目录

一、前言:

二、定义一个对象:

🔑说明:

三、通过对象访问类成员: 

💦例:学生类对象访问学生类中的公有成员。

四、通过对象指针、对象引用访问类成员: 

 💦对象指针访问类中成员:        

💦例:学生类对象指针访问学生类中的公有成员。

 🔑说明:

 💦对象引用访问类中成员:

五、总结:

六、共勉: 


一、前言:

        类本质上是用户自定义的一种数据类型,对象可以看成是通过类这种数据类型定义的变量。

二、定义一个对象:

        可以在定义类的同时定义对象;也可以在声明类之后,在需要时再定义对象定义对象的格式与定义一般变量的格式相同

🔑说明:

💦声明了一个类以后,便声明了一种类型,它并不接收或存储具体的值只有在定义了对象后,系统才为对象并且只为对象分配存储空间

💦在声明类的同时定义对象为全局对象,在它的生存期内任何函数都可以使用它如果在一个函数中定义,那它就是局部对象,只在函数内部有效。

三、通过对象访问类成员: 

        在定义了类对象后,就可以通过类对象访问类中成员; 注意通过类外部的类对象只能直接访问其公有成员,不能直接访问其私有成员和保护成员类对象可以通过类的公有成员间接实现对私有成员和保护成员的访问。

💦例:学生类对象访问学生类中的公有成员。

#include<iostream>
#include<string>
using namespace std;class Student{private:int ID;string name;string sex;int age;public:void input(int pid,string pname,string psex,int page);void print();
};void Student::input(int pid,string pname,string psex,int page){ID=pid;name=pname;sex=psex;age=page;
}void Student::print(){cout<<"ID:"<<ID<<"\nName:"<<name<<"\nSex:"<<sex<<"\nAge:"<<age<<endl;
}int main(){Student std;std.input(20230011,"张三","男",18);std.print();
}

四、通过对象指针、对象引用访问类成员: 

        如果类是用户自定义的一种数据类型,那么对象就是自定义的数据类型一类声明的一种应量,变量可以有对应的指针和引用,因此对象也可以有对应的指针和引用

 💦对象指针访问类中成员:        

        对象指针,就是一个指针变量指向对象,也就是指针变量中存储的是对象的地址。由于类和结构具有相似性,对象指针和结构指针的使用方法也是相似的,也是使用箭头操作符->来访问该指针所指向的对象的成员数据或成员函数。

        指针访问类成员的一般格式如下:

对象指针变量名->公有成员

或者也可以等价写成下列形式

(*对象指针变量名).公有成员

这两种表达形式是等价的。

💦例:学生类对象指针访问学生类中的公有成员。

#include<iostream>
#include<string>
using namespace std;class Student{private:int ID;string name;string sex;int age;public:void input(int pid,string pname,string psex,int page);void print();
};void Student::input(int pid,string pname,string psex,int page){ID=pid;name=pname;sex=psex;age=page;
}void Student::print(){cout<<"ID:"<<ID<<"\nName:"<<name<<"\nSex:"<<sex<<"\nAge:"<<age<<endl;
}int main(){//动态申请一个学生对象空间,空间的首地址放在Student类对象指针变量pstd	Student *pstd=new Student;pstd->input(20230011,"张三","男",18);pstd->print();delete pstd;return 0;
}

 

 🔑说明:

        *pstd 是堆对象,程序在运行过程中根据需要可随时建立或删除对象,通过 new 运算符创建对象,通过 delete 运算符删除对象。

 💦对象引用访问类中成员:

        引用的概念,引用就是给变量起一个别名,对引用进行操作就是对变量本身进行操作。通过引用又提供了另外一种访问变量的方式,给程序设计带来了很大的方便,尤其是引用作为函数形参传递时。对象也可以有引用,声明一个对象引用的格式如下: 

类名 &引用名 a = 对象名 b;

        此时相当于给已有的对象 b 又取了一个名称叫作 a,对a的操作与对b的操作一样例如,对于学生类 Student,可以定义对象引用访问公有成员,代码片断如下: 

Student s;//定义一个Student类对象s
Student &rs=s;//声明一个s的引用rs,相当于给对象s取了一个别名rs
rs.input(20230011,"张三","男",18);//对rs操作就是对s操作
rs.print();//等价与s.print();

五、总结:

  • ⭐ 类本质上是用户自定义的一种数据类型,对象可以看成是通过类这种数据类型定义的变量。
  • ⭐ 可以在定义类的同时定义对象;也可以在声明类之后,在需要时再定义对象。
  • ⭐ 注意通过类外部的类对象只能直接访问其公有成员,不能直接访问其私有成员和保护成员。
  • ⭐ 类对象可以通过类的公有成员间接实现对私有成员和保护成员的访问。
  • ⭐ 对象也可以有对应的指针和引用
  • ⭐  对象指针,就是一个指针变量指向对象,也就是指针变量中存储的是对象的地址

六、共勉: 

        以上就是我对类和对象——(3)再识对象的理解,希望本篇文章对你有所帮助,也希望可以支持支持博主,后续博主也会定期更新学习记录,记录学习过程中的点点滴滴。如果有不懂和发现问题的小伙伴,请在评论区说出来哦,同时我还会继续更新对类和对象的理解,请持续关注我哦!!! 

这篇关于类和对象——(3)再识对象的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/440970

相关文章

在java中如何将inputStream对象转换为File对象(不生成本地文件)

《在java中如何将inputStream对象转换为File对象(不生成本地文件)》:本文主要介绍在java中如何将inputStream对象转换为File对象(不生成本地文件),具有很好的参考价... 目录需求说明问题解决总结需求说明在后端中通过POI生成Excel文件流,将输出流(outputStre

C#原型模式之如何通过克隆对象来优化创建过程

《C#原型模式之如何通过克隆对象来优化创建过程》原型模式是一种创建型设计模式,通过克隆现有对象来创建新对象,避免重复的创建成本和复杂的初始化过程,它适用于对象创建过程复杂、需要大量相似对象或避免重复初... 目录什么是原型模式?原型模式的工作原理C#中如何实现原型模式?1. 定义原型接口2. 实现原型接口3

Java实现将byte[]转换为File对象

《Java实现将byte[]转换为File对象》这篇文章将通过一个简单的例子为大家演示Java如何实现byte[]转换为File对象,并将其上传到外部服务器,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言1. 问题背景2. 环境准备3. 实现步骤3.1 从 URL 获取图片字节数据3.2 将字节数组

Javascript访问Promise对象返回值的操作方法

《Javascript访问Promise对象返回值的操作方法》这篇文章介绍了如何在JavaScript中使用Promise对象来处理异步操作,通过使用fetch()方法和Promise对象,我们可以从... 目录在Javascript中,什么是Promise1- then() 链式操作2- 在之后的代码中使

MyBatis的配置对象Configuration作用及说明

《MyBatis的配置对象Configuration作用及说明》MyBatis的Configuration对象是MyBatis的核心配置对象,它包含了MyBatis运行时所需的几乎所有配置信息,这个对... 目录MyBATis配置对象Configuration作用Configuration 对象的主要作用C

SpringBoot实现导出复杂对象到Excel文件

《SpringBoot实现导出复杂对象到Excel文件》这篇文章主要为大家详细介绍了如何使用Hutool和EasyExcel两种方式来实现在SpringBoot项目中导出复杂对象到Excel文件,需要... 在Spring Boot项目中导出复杂对象到Excel文件,可以利用Hutool或EasyExcel

Springboot控制反转与Bean对象的方法

《Springboot控制反转与Bean对象的方法》文章介绍了SpringBoot中的控制反转(IoC)概念,描述了IoC容器如何管理Bean的生命周期和依赖关系,它详细讲解了Bean的注册过程,包括... 目录1 控制反转1.1 什么是控制反转1.2 SpringBoot中的控制反转2 Ioc容器对Bea

Java对象和JSON字符串之间的转换方法(全网最清晰)

《Java对象和JSON字符串之间的转换方法(全网最清晰)》:本文主要介绍如何在Java中使用Jackson库将对象转换为JSON字符串,并提供了一个简单的工具类示例,该工具类支持基本的转换功能,... 目录前言1. 引入 Jackson 依赖2. 创建 jsON 工具类3. 使用示例转换 Java 对象为

Java中对象的创建和销毁过程详析

《Java中对象的创建和销毁过程详析》:本文主要介绍Java中对象的创建和销毁过程,对象的创建过程包括类加载检查、内存分配、初始化零值内存、设置对象头和执行init方法,对象的销毁过程由垃圾回收机... 目录前言对象的创建过程1. 类加载检查2China编程. 分配内存3. 初始化零值4. 设置对象头5. 执行

JSON字符串转成java的Map对象详细步骤

《JSON字符串转成java的Map对象详细步骤》:本文主要介绍如何将JSON字符串转换为Java对象的步骤,包括定义Element类、使用Jackson库解析JSON和添加依赖,文中通过代码介绍... 目录步骤 1: 定义 Element 类步骤 2: 使用 Jackson 库解析 jsON步骤 3: 添