1.Java没有主函数和全局函数 (1)C+并非完全意义上的面向对象语言,例如:在C++中, 必须有一个独立的主函数(在Dos和Umix下是main(),在 Windows下是 Winmail(),还可以定义直接使用的全局函数等 (2)Java是完全面向对象的语言,他没有主函数等完全孤立的 东西,任何函数都必须隶属于一个类 当然,任何程序都有一个入口,Java程序也有主入口函数,名 称同样是 maino,但它必须包含在一个类中,一般形式是 Public class AppName Public static void main( String args)( ∥代码
1. Java没有主函数和全局函数 (1)C++并非完全意义上的面向对象语言,例如:在C++中, 必须有一个独立的主函数(在Dos和Unix下是main(),在 Windows下是WinMain()),还可以定义直接使用的全局函数等 (2)Java是完全面向对象的语言,他没有主函数等完全孤立的 东西,任何函数都必须隶属于一个类。 当然,任何程序都有一个入口,Java程序也有主入口函数,名 称同样是main(),但它必须包含在一个类中,一般形式是: Public class AppName{ Public static void main(String args[]) { … // 代码 }}
Java没有全局变量 在Java程序中,不能在所有类外面定义全局变量,只能通过在 个类中定义公用静态变量来实现全局变量。例如: class Global Var i public static Global Var Name;∥全局变量定义 因为 public static成员是一种类属成员变量,只要定义了类,其 中的类属成员变量就分配空间,而不需要必须声明类的对象 使得其他类可以访问和操作该变量 可见,在Java中,对全局变量进行了更好的封装。而在C++中 不依赖于任何类的不加封装的全局变量往往会导致系统崩溃
2. Java没有全局变量 在Java程序中,不能在所有类外面定义全局变量,只能通过在 一个类中定义公用静态变量来实现全局变量。例如: class GlobalVar { public static GlobalVarName; // 全局变量定义 } 因为public static成员是一种类属成员变量,只要定义了类,其 中的类属成员变量就分配空间,而不需要必须声明类的对象。 使得其他类可以访问和操作该变量。 可见,在Java中,对全局变量进行了更好的封装。而在C++中, 不依赖于任何类的不加封装的全局变量往往会导致系统崩溃
3.Java没有结构和联合 在C艹中,为了保持和C的兼容,继续支持结构( struct)和联 合( unIon)。但是,在Java中,则完全拚弃了这些面向过程时 代的概念
3. Java没有结构和联合 在C++中,为了保持和C的兼容,继续支持结构(struct)和联 合(union)。但是,在Java中,则完全拚弃了这些面向过程时 代的概念
4.字符串不再是字符数组 在C和C+中,字符串操作往往会导致许多内存问题,如内存非 法操作、内存泄漏等 因为字符串char*s和不定界的字符数组 char sl是等价的。但两 者只是为变量s分配一个指向字符串的指针,存储字符串内容的 内存需要申请和释放。 在Java中,字符串和字符数组已经被分开了。字符串是一个完 全意义上的对象,需要用 String类来定义
4. 字符串不再是字符数组 在C和C++中,字符串操作往往会导致许多内存问题,如内存非 法操作、内存泄漏等。 因为字符串char *s和不定界的字符数组char s[]是等价的。但两 者只是为变量s分配一个指向字符串的指针,存储字符串内容的 内存需要申请和释放。 在Java中,字符串和字符数组已经被分开了。字符串是一个完 全意义上的对象,需要用String类来定义
5.Java用 Package来分解命名空间 问题:在大型的软件工程中,如何避免程序员和程序员之间 程序员和系统供应商提供的类不重名呢? 在Java中,引入 Package概念来解决上述问题。 Package有效的 通过集合类来划分命名空间,在不同包内的类可以同名,但不 会引起混乱 Java并没有彻底解决命名冲突的问题,扩展基类可能引起派生 类的冲突。例如:用户派生一个类,增加一个方法foo。如果以 后供应商提供新的版本,在新类中也包含了foo方法,冲突就出 现了
5. Java用Package来分解命名空间 问题:在大型的软件工程中,如何避免程序员和程序员之间、 程序员和系统供应商提供的类不重名呢? 在Java中,引入Package概念来解决上述问题。Package有效的 通过集合类来划分命名空间,在不同包内的类可以同名,但不 会引起混乱。 Java并没有彻底解决命名冲突的问题,扩展基类可能引起派生 类的冲突。例如:用户派生一个类,增加一个方法foo。如果以 后供应商提供新的版本,在新类中也包含了foo方法,冲突就出 现了