JAVA的语法其实是参照c的语法诞生的,但是她去除了c中的多重继承,指针,delete等难于掌握的技术,为了便于移植和安全性,java采用了纯面向对象技术,即使是主函数public static void main(String[] args){}也要放在主类中,可以看出和C++的明显区别。
(3) 在Java中,类定义采取几乎和C同样的形式。
但没有标志结束的分号。没有类声明,只有类定义。
(4) Java中没有作用域范围运算符“::”.
Java利用点号做所有的事情,但可以不用考虑它,因为只能在一个类里定义元素。即使那些方法定义,也必须在一个类的内部,所以根本没有必要指定作用域的范围。我们注意到的一项差异是对static方法的调用:使用ClassName.methodName()。
除此以外,package(包)的名字是用点号建立的,并能用import关键字实现C的“#include”的一部分功能。
例如下面这个语句:

import java.awt.*;
#include并不直接映射成import,但在使用时有类的感觉。若想使用另一个库里的类,只需使用import命令,并指定库名即可。不存在类于预处理机的宏。
c/c十十在编译过程中都有一个预编译阶段,即众所周知的预处理器。预处理器为开发人员提供了方便,但增加了编译的复杂性。JAVA虚拟机没有预处理器, 但它提供的引入语句(import)与c十十预处理器(#include)的功能类。(注意:只是类而已)(5)JAVA中没有预处理功能的详细介 绍
不再有#define、#include等预处理程序(Preprocessor)的功能。C语言很重要的一个特点就是它的预处理程序。有些其他程序 语言虽然也加入了#include的功能,但是还是欠缺处理宏(Macro)的能力。#define的功能在Java中我们可以用定义常数 (constant)的方式来取代,而#include在Java中是不需要的,因为在Java中程序在执行时,会把类型数据记录在对象实体之中,我们不 需要靠一些标头文件(header file)来知道我们使用的对象或数是属于什么数据类型。
如果你使用C语言时,只使用预处理程序的#include和#define功能的话,那么你大概不会觉得Java这样的设计对你产生什么样的困扰,但是如果你是使用C语言预处理程序中宏功能的高手,你可能会觉得很不方便,进而怀疑Java如此设计的意义何在。
使用预处理程序虽然可以很方便地达到许,但是站在软件工程的角度上看,对整个软件的维护其实是很不利的。由于C语言中预处理程序的功能太过强 大,厉害的程序设计高手常会自行开发一套只有自己看的懂的宏语言,一旦整个软件要交给其他人去维护,后继者很难在短时间内了解前一个人所写下的宏功能,增 加软件开发时团队工作及日后维护的困难度。
另外一点则是C语言的编译器所看到的程序代码,其实和程序设计者看到的程序代码是不同的。程序设计者看到的是尚未经过预处理程序处理过的程序代码,而 编译器看到的则是预处理程序处理过的程序代码,一旦交给预处理程序处理的宏内容有误,编译器产生的错误信息将不会是程序设计师所预料的。而这一点自然也增 加了程序在排错时的困难度。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/sanxing/article-58491-5.html