解锁即可观看《Java工程师2022》完整课程视频

Java工程师2022

以一线互联网公司产品标准,打造适合零基础学习的全干货Java课程。选择Java,挑战高薪!

【第1周】Java基础夯实-环境搭建与语法入门
【第2周】Java基础夯实-循环、数组与方法
【第3周】Java基础进阶-面向对象之封装与继承
【第4周】Java基础进阶-面向对象之单例模式与多态
【第5周】Java基础进阶-异常、包装类、字符串与集合
【第6~7周】Java基础进阶-泛型、多线程、I/O流与综合案例
【第8~9周】数据管理必备利器-MySQL
【第10周】Java与数据库连接的桥梁
【第11周】Java高级编程
【第12周】Java必知必会框架入门-MyBatis
【第13~14周】前端编程必备三剑客——HTML、CSS与JS
【第15~16周】前端综合案例实战与前端火热框架VUE3入门
【第17周】Java Web编程急速入门
【第18周】Java Web编程进阶-常用功能与过滤器
【第19~20周】Java Web编程实战-MyBatis实现OA系统项目实战
【第21~22周】Java主流框架入门-Spring
【第23周】Java主流框架入门-Spring MVC
【第24周】Java主流框架实战-SSM开发社交网站
【第25~26周】Java主流框架实战-Spring Boot电商项目实战
【第27~28周】Java主流框架进阶实战-Spring Boot电商项目升级
【第29周】面试指导-高频面试题详解
【第30~31周】Java分布式入门
【第32周】Java微服务入门-Spring Cloud
【第33~34周】Spring Cloud微服务电商项目实战
【第35周】Zookeeper+Dubbo应用与就业指导
章节
问答
课签
笔记
评论
占位
占位

霸道总裁的员工:类

我们上一小节中介绍了面向对象的思想,这一小节开始,我们来具体看看在 C++ 中应该如何实现面向对象。

类,是 C++ 实现面向对象最基础的部分。类其实和之前学过的结构体十分相似,你可以认为类是结构体的升级版。之后的学习中你会更加理解类。现在,我们只简单的来介绍一下类。

类的申明

在 C++ 中,可以用下面的代码申明一个员工类:

class Staff
{

};

可以像使用结构体一样使用这个类:

#include <stdio.h>

class Staff
{

};

int main(int argc,char **argv)
{
    Staff st;
    return 0;
}

分文件编程

我们在此之前都是把代码放到一个文件里,但是这样在实际工程中肯定是不行的,我们不可能把所有的代码都写到一个文件夹里面。而在 C++ 中我们就常常把类定义到不同的文件里面,把每个类都独立起来,这样代码的耦合性就会降低,方便维护。

在 C++ 中,我们可以把一个类写到两个文件里面,一个是后缀为 .h 或者 .hpp 的头文件,一个是后缀为 .cpp 的实现文件。我们先在开发环境里新建一个类。输入类名是 Staff。

可以看到 VS 为我们创建类两个文件,Staff.h 和 Staff.cpp。Staff.h 文件为定义,Staff.cpp 为实现。

在分了文件之后,我们想要在 main 函数中引用这个类,就需要使用 #include “Staff.h” 将头文件引入进来。

实例化

在新建了一个类之后,我们就可以根据这个类产生对象了。根据类产生对象的过程叫做实例化。这个过程就像是公司招聘员工一样,幸运的是,我们作为程序的老板,并不需要和现实中一样去张贴招聘启示。在 C++ 中,“招聘“员工,只需要用以下的代码就可以了。

#include "Staff.h"

int main(int argc,char **argv)
{
    // 我们就这样实例化了三个员工
    Staff st1;
    Staff st2;
    Staff st3;

    return 0;
}

这样分配,我们将这三个“员工”分配到了栈上,同样的,可以把他们分配到堆内存上面去。

new delete

要将对象分配到堆上,需要用到另外两个关键字,new 和 delete。new 用来分配对象,delete 用来删除对象。new 会返回一个指针,在使用完毕后,要通过 delete 把这个指针指向的地址释放掉。

#include "Staff.h"

int main(int argc,char **argv)
{
    // 我们就这样实例化了三个员工
    Staff * st1 = new Staff();
    Staff * st2 = new Staff();
    Staff * st3 = new Staff();

    // 记得释放
    delete st1;
    delete st2;
    delete st3;

    return 0;
}

当然,我们现在这个类还什么都不能干呢,接下来的课程中,我们将逐步介绍类的功能。

任务

?不会了怎么办
||

提问题

写笔记

公开笔记
提交
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布
全部 我要发布
最热 最新
只看我的

手记推荐

更多

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?