Java(SE)与C++之我见(大学的时候写的)

读大学的时候写的,偶然看到,拿来共享下。

大学里面学了很多编程语言相关的东西,汇编,C、Objective-C、C++、C#、HTML、CSS+DIV、ASP.NET、JavaScript、XML、VHDL、Java等,以前选修Java,纯属打酱油。对于TIOBE编程语言排行榜的前五名语言,都学过了。主要研究方向是C/C++,在培训机构培训了4个月,在学校用过C#做过几次课设,在公司用Objective-C做了半年的开发,只有Java学得最差,趁大学最后的时间,刚好宿舍又有Java大神,恶补中。

多懂几门语言,才能站在一定的高度,看到各种语言之间的优劣,对编程有更深刻的理解。听别人说,语言不懂要,重要的是算法和思想,只有当弄懂两三门语言之后,大概也才能理解这话的意思。

学完Java的基础部分,感觉跟C++没有什么区别,不到两天时间,完全能够搞定,要说有不同就是控制台输入。

1 控制台输入不同

Java:

import java.util.Scanner;

Scanner in = new Scanner(System.in);

int i = in.nextInt();

String str = in.nextLine();

.....

C++:

#include <iostream>

using namespace std;

int i;

cin >> i;

String str;

cin >> str;

...

开始学习Java的面向对象部分,Java的类跟C++的类也差不多的,只有些细微的差别。

2 API提供方式

Java:

使用Javadoc提取源文件中文档注释(/**.....*/)中的内容,类必须是public类型的,生成网页,以网页的方式提供。

其中包括:

文件说明:@author XXX(作者) ,@version XXX(版本)

函数说明:@param args XXX(传入参数),@return XXX(返回值)

C++ :

头文件的形式提供

3 类的修饰词

Java:

public   在本包和其他包中可见,强制类名跟文件名一样,同时也只有public类才能用Javadoc生成文档

abstract 表明是抽象类 必须被继承后才能使用

final 不能被继承(还可以修饰函数,使之不能被重修,修饰变量,使之成为常量,相当于C++中的const)

C++:

类没有修饰词

4 引用文件

Java:

导包的形式:src文件下的文件夹开始

import  src文件夹.子文件夹1.子文件夹2.~.类文件名

C++:

#include "当前文件夹中文件夹/子文件夹1/子文件夹2/~/类的头文件名"

5 继承

Java:

只支持单继承,通过关键字extends,没有继承方式的选择,可是实现多个接口,使用关键字implements,后面的多个接口名通过逗号分开

C++:

支持多继承,继承方式可以有public,protected和private,使用冒号“:”

6 子类构造函数

Java:

在子类中通过调用super(参数列表)来调用父类的构造函数

C++:

在子类构造函数的参数初始化列表中调用父类的构造函数

7  类成员变量的默认参数

Java:

可以在定义时直接赋初值

C++:

在构造函数的参数中给定默认值

8 接口

Java:

使用interface定义,其中的函数必须是abstract的,可以选择性实现接口

C++:

没有接口,使用抽象类

9 异常处理

Java:

try - catch - finally

C++:

try - catch

10 命名空间

Java:

package 类名(包括路径);

C++:

using namespace 命名空间命;

多线程:

Java:

继承Thread类重写Run方法,调用start启动线程

实现Runnable接口中的Run方法,调用start启动线程

C++:

C++语言中本身没有多线程,都是与操作系统相关。

时间: 2024-12-27 23:15:02

Java(SE)与C++之我见(大学的时候写的)的相关文章

Java SE 8 新特性之旅 : Java开发世界的大变动

我很自豪的成为了adopt-OpenJDK的一员,像其他专业团队成员一样,但是我只刚加入了8个月,我们一同经历了Java SE 8 的开发.编译.编码.讨论--等等,直到JDK上线.Java SE 8发布于2014年3月18日,现在可供下载使用. 我很高兴发布这一系列"Java SE 8 新特性之旅",我会写一些例子来简化Java SE 8知识的获取.开发经验.新特性和API,然后 利用你的知识,提高你的编码能力,同时提高你的生产力.我希望你能像我写文章一样享受它. 我们将游览Java

安卓里面JSON处理和JAVA SE里面的JSON包

今天编译安卓项目遇到这个问题 com.android.dex.DexException: Multiple dex files define的解决办法 大致意思就是引用了 相同的包 在JAVA SE里面我使用的是 import net.sf.json.JSONObject; 这个就不多说了,网上大家都可以下载到,但是当吧这个jar放到安卓里就出现引用相同的包的问题了 看了下android.jar 里面有个org.json 一样可以处理 问题解决

Java(SE)内容回顾

也是大学的时候写的,现在回头看看,那时候的想法还是有点小小的幼稚,文章内容也...哈哈...欢迎拍砖 学Java一段时间了,小小的回顾下,理一下结构.另外,提一下,哥哥是做C/C++的,不做Java,Java仅仅是学习一下. Java基本语法 一 Java基础部分 1 数据类型 2 控制流程 3 函数 二 Java面向对象部分 1 类定义 2 封装 3 继承 4 多态 5 抽象类 6 接口 7 异常处理 8 根类Object 9 包 Java多线程 1 线程创建方法1:继承Thread,重写Ru

java书籍推荐:《Java SE 6 技術手册》

Java SE 6 技術手册 或  Java SE 6 技術手册 Java SE 6 技術手册 為什麼選擇用 Markdown?仅仅是單純把文件又一次排版太無聊了,不如趁這個機會學些新東西.所以我就藉這個機會來學著用 Markdown,並看看它有什麼好處與壞處 ... 假设你须要 PDF 與 epub 格式.而又有點懶自己轉換,那麼能够考慮在 Google Play 或 Pubu 上向便當價致敬,假设你须要 mobi 格式,能够使用 calibre 把 epub 轉為 mobi ... :) 我

【Java SE】如何用Java实现直接选择排序

摘要:直接选择排序属于选择排序的一种,但是它的排序算法比冒泡排序的速度要快一些,由于它的算法比较简单,所以也比较适合初学者学习掌握. 适宜人群:有一定Java SE基础,明白Java的数据类型,数组的定义.初始化以及常用数组的方法,还有Java的循环操作. 前期准备:最好有一个开发工具比如说:eclipse或者myeclipse都可以,当然你使用DOS系统进行编译运行都可以,只不过改bug会麻烦一点. 排序原理:直接选择排序的原理是将指定排序位置与其他数组元分别对比,如果满足条件就交换位置的值,

Java SE 基础:标识(zh&#236;)符

Java SE 基础:标识(zhì)符 一.标识符定义 标识符,就是给类.接口.方法.变量等起名字时的字符序列 二.组成规则与注意事项 1.组成规则 英文大小写字母 数组 $ 和 _ 2.注意事项 不能以数组开头 不能是 Java 关键字(见关键字表:) 书写时区分大小写(大写和小写表示两个不同的标识符,如 public 和 Public 是不同的) 三.Java 中标识符的命名规则要做到:见名知意 包(package):包其实就是文件夹,用于区分项目中文件的结构,包名应当使用小写 单级包:to

Java SE Development Kit 5/6/7下载地址

Java SE Development Kit 7 http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html Java SE Development Kit 6 http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html

JAVA SE、JAVA EE、JAVA ME的联系与区别

Java 平台有三个版本,这使软件开发人员.服务提供商和设备生产商可以针对特定的市场进行开发: * Java SE(Java Platform,Standard Edition).Java SE 以前称为 J2SE. 它允许开发和部署在桌面.服务器.嵌入式环境和实时环境中使用的 Java 应用程序. Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础. * Java EE(Java Plat

Java SE (5)之 线程使用

JAVA有两种线程的方法Thread 和Runnable 能够使用,这是为了弥补不能多继承的缺陷 首先是 Thread package com.sunzhiyan03; /* * 演示线程 * */ public class Demo1 { public Demo1() { // TODO Auto-generated constructor stub } public static void main(String[] args) { // TODO Auto-generated method