学习下c++原来它和Java有很多相似的地方

news/2024/11/25 20:34:59/

在这里插入图片描述

Java和C++

  • Java和C++区别
  • 简单学习下C++语法
    • C++ 是什么?
    • C++工作原理:
    • C++标识符
    • C++基本数据类型
    • C++关键字
    • 封装,继承,多态
  • 简单回顾下Java语法
    • Java的基础语法:
    • Java注释
    • Java标识符
    • Java修饰符
    • Java 接口和继承
    • Java8 新增的特性

Java和C++区别

在这里插入图片描述
Java是面向对象编程语言,具有封装,继承,多态等面向对象特征。
目前Java分为三个体系:

  • JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)
  • JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版)
  • JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)

Java语言的语法与C++语言很接近,所以,很容易学习和使用。Java语言呢丢弃了C++中很少使用的、很难理解的操作符重载、多继承、自动的强制类型转换。

Java语言不使用指针,而是引用。并提供了自动的内存回收管理机制,不必担心内存垃圾回收机制。C#、Python等语言也都有自动的垃圾回收机制。

Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。

C/C++语言中,没有自动垃圾回收机制,是通过new关键字申请内存资源,通过delete 关键字释放内存资源。
在这里插入图片描述

C++ 应用范围:文字处理程序以及电子表格,编译器,操作系统,大型游戏等。C语言是结构化和模块化的语言,面向过程。

Java语言应用范围:安卓手机应用,软件工具,网站应用,交易系统,科学应用,大数据领域,嵌入式领域等等。

简单学习下C++语法

C++ 是什么?

C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持面向过程编程、面向对象编程和泛型编程。

C++是C语言的继承,它是一种使用非常广泛的计算机编程语言,C++作为一种静态数据类型检查的、支持多范型的通用程序设计语言,能够支持过程化程序设计、数据抽象化、面向对象程序设计、泛型程序设计、基于原则设计等多种程序设计风格。

C++的编程领域众广,常用于系统开发,引擎开发等应用领域,深受广大程序员的喜爱。C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

C++工作原理:

C++语言的程序是编译型的,所以它性能高。但其开发环境,为了方便测试,将调试环境做成解释型的。即开发过程中,以解释型的逐条语句执行方式来进行调试,以编译型的脱离开发环境而启动运行的方式来生成程序最终的执行代码。

第一步是对程序进行编译,这需要用到编译器(compiler)。编译器将C++语句转换成机器码也称为目标码;
第二步就是对程序进行链接,这需要用到链接器(linker)。链接器将编译获得机器码与C++库中的代码进行合并。

C++标识符

标识符是用来标识变量、函数、类、模块,或任何其他用户自定义项目的名称。
一个标识符以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)
标识符内不允许出现标点字符,比如 @、& 和 %。C++ 是区分大小写的编程语言。

C++基本数据类型

C++数据类型有七种分别是:bool、char、int、float、double、void、wchar_t
类型修饰符:signed、unsigned、short、long

C++关键字

在这里插入图片描述

封装,继承,多态

封装:封装是实现面向对象程序设计的第一步,封装就是将数据或函数等集合在一个个的单元中(称之为类)。封装的意义在于保护或者防止代码(数据)被无意中破坏。

继承:继承主要实现重用代码,节省开发时间。子类可以继承父类的一些方法。

多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。

简单回顾下Java语法

Java的基础语法:

简要介绍下类、对象、方法和实例变量的概念,这些是运行一个Java程序的集合

  • 类:对象是类的一个实例,有状态和行为。例如一个student类,他的属性有:姓名,班级,分数等
  • 对象:类是一个模板,它描述一类对象的行为和状态。
  • 方法:一个类可以有很多方法。比如一些逻辑运算、数据修改以及所有动作都是在方法中完成的。
  • 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。

编写Java程序时,以下几点也要注意一下:

  • 大小写敏感: Java是大小写敏感的,这就意味着使用大写的H和小写h是不同的。
  • 类名: 对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 StudentDemo,MyStudentDemo,遵守驼峰命名法。
  • 方法名: 所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
  • 源文件名: 源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记Java是大小写敏感的),文件名的后缀为.java。(如果文件名和类名不相同则会导致编译错误)。
  • 主方法入口: 所有的Java 程序由​public static void main(String[] args)​ 方法开始执行。

写一个简单的java,main方法程序如下:

public class StudentDemo{/* * 将打印字符串 Hello World,Java*/public static void main(String []args) {// 打印 Hello World,JavaSystem.out.println("Hello World,Java"); }
} 

Java注释

类似于C/C++,Java也支持单行以及多行注释。注释中的字符将被Java编译器忽略。

	// 这是单行注释/*** 这是多行注释*/

Java标识符

Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
关于Java标识符,有以下几点需要注意:

  • 所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始
  • 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
  • 关键字不能用作标识符,这个要注意下
  • 标识符是大小写敏感的
  • 合法标识符举例:age、$salary、_value、__1_value

Java修饰符

Java可以使用修饰符来修饰类中方法和属性。主要有两类修饰符:

  • 访问控制修饰符 : default, public , protected, private
  • 非访问控制修饰符 : final , abstract, static , synchronized , volatile

Java 接口和继承

在Java中,接口可理解为对象间相互通信的协议。接口在继承中扮演着很重要的角色。
接口只定义派生要用到的方法,但是方法的具体实现完全取决于派生类。一个类可以由其他类派生。如果你要创建一个类,而且已经存在一个类具有你所需要的属性或方法,那么你可以将新创建的类继承该类。利用继承的方法,可以重用已存在类的方法和属性,而不用重写这些代码。
这就是接口和继承

Java8 新增的特性

在这里插入图片描述
可以查看官网了解一下 Java JDK 8

  • Lambda 表达式 :Lambda允许把函数作为一个方法的参数(函数作为参数传递进方法中)。

  • 方法引用:方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用,方法引用可以使语言的构造更紧凑简洁,减少冗余代码。

  • 默认方法:默认方法就是一个在接口里面有了一个实现的方法。

  • 新工具:新的编译工具,如:Nashorn引擎 jjs、 类依赖分析器jdeps。

  • Stream API :新添加的Stream API(java.util.stream) 把真正的函数式编程风格引入到Java中。

  • Date Time API:加强对日期与时间的处理。比如LocalDateTime

  • Optional 类 : Optional 类已经成为 Java 8 类库的一部分,用来解决空指针异常。

  • Nashorn, JavaScript 引擎: Java 8提供了一个新的Nashorn javascript引擎,它允许我们在JVM上运行特定的javascript应用。

看到最后你应该知道了Java和C++有哪些相似的地方了吧?
评论区告诉大家哦
在这里插入图片描述


http://www.ppmy.cn/news/2372.html

相关文章

DeepLab V3学习笔记

DeepLab V3遇到的问题和解决方法相关工作DeepLab V3中的两种模型结构cascaded modelASPP model相对于DeepLab V2的优化Multi-grid MethodASPP的改进消融实验cascaded model消融实验ASPP model消融实验和其他网络的对比实验总结网络模型图遇到的问题和解决方法 对于DeepLab系列…

三种设置session有效时间的方法

session的默认有效时间是30分钟(min) 方法一:使用java函数:session.setMaxInactiveInterval() 举例:设置的有效期是30分钟(min) session.setMaxInactiveInterval(30 * 60); //30分*60秒 注意:以秒(s)为单位。 如果设置的值为零…

LabVIEW编程LabVIEW开发 ADAM 4015热电阻输入模块例程与相关资料

LabVIEW编程LabVIEW开发 ADAM 4015热电阻输入模块例程与相关资料 ​研华公司的ADAM 4015是6通道热电阻输入模块,可以采集2线或3线热电阻输入信号,ADAM4015T课题采集热敏电阻的输入信号。模块在工业测量和监控的有着广泛的应用,它既可以支持A…

SAP S4HANA MM模块后台配置详解

目录 1. 常规设置 1.1 定义国家 1.2.计量单位配置 1.3.货币设置 1.4.维护日历 1.4.1 概念及功能说明 1.4.2 业务示例 1.4.3 配置步骤 2. 企业结构 2.1 定义和分配公司 2.2 设定评估级别、定义/分配工厂 2.2.1. 概念及功能说明 2.2.1. 业务示例 2.2.2. 配置步…

11月更新 | Visual Studio Code Python

我们很高兴地宣布,2022年11月发布的适用于 Visual Studio Code Python 和 Jupyter 扩展现已推出! 此版本包括以下改进: 迁移 isort 扩展 Pylance 默认关闭自动导入 Pylint 和 flake8 扩展 用于笔记本单元调试的“Just My Code” 如果您有…

3 个月前被裁员了,心情跌落谷底,直到我看到了这本神书…

3个月前的某一天,正在愉快的打工,突然被喊去谈话,然后就被辞退了。。 加入了找工作的大军 然而,因为疫情,因为大专学历的我,找工作比以往都艰难了许多 很多,纯粹就是因为学历,都不…

2023年天津仁爱学院专升本报名确认缴费考试流程

2023年天津仁爱学院专升本报名确认缴费操作流程说明及考试时间一、报名操作流程 1. 报名注册 请考生于2022年12月7日上午9点—12月11日中午12:00点登录报名系统https://jw.tjrac.edu.cn/zsb,点击“注册”按钮后进入报名登录界面,先请仔细阅读…

Nacos注册中心和服务消费方式

1.安装配置nacos以及实现服务支持 nacos简介 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速 实现动态服务发现、服务配置、服务元数据及流量管理。 从上面的介绍就可以看出,nacos的作用就是一个注册中心&am…