萌新对c++与java一些不同点的认知(๑´ㅂ`๑)
Java、C、C++在近两年一直稳居世界编程语言排行榜前三名。Java与c++都是面向对象的语言,但Java晚于C++发布,部分语法和思想也参考了C++,只是Java 没有头文件、指针、运算符重载、虚基类等等,算是c++语言的“纯净版”。学过c++的同学入门Java相对来说就不算很难了,应当注意的是Java与c++有很多不同点。
1.头文件与命名空间
c++里可以用头文件,而Java里没有头文件的用法。
Java里有package关键字的用法。当一个大型程序交由数个不同的程序人员开发时,很有可能用到相同的类名,所以在java程序开发中为了避免这个问题,提供了一个包的概念,只需要在写的程序第一行使用package关键字来声明一个包。在我的理解里,包就类似于文件夹,它将源代码文件(.java)、编译后的文件(.class)和其他的一些用到的文件有组织的放在一起,这样一个大型程序就算是有相同类名,这些相同名字的类在不同包内就不用担心会出问题。
在c++里有一个经典的命名:using namespace std;这行代码使得我们在使用cin、cout、endl……时不用加std::的前缀。而在Java里有import关键字的用法,它同样能让我们在编写程序时省下写前缀的力气。import与#include有点相似但却不一样,编译器会在import导入的包里选择与类名对应的包,而#include则是编译器将其他文件的内容载入进来。Java里有一个java.lang包,里面的类经常用到,几乎没有类不用它的, 所以不管有没有写 import java.lang,编译器都会自动补上。
2.代码格式
c++格式如下:
1 #include<iostream> //头文件,必写 2 2 using namespace std; //命名,为了省事 3 3 int main() 4 4 { 5 5 cout << "Hello World!" << endl; 6 6 return 0; 7 7 }
Java格式如下:
1 package java.xingchen; //说明在java.xingchen这个包内 2 import java.lang; //可不写,编译器自动加 3 class xingchen { 4 public static void main(String[] args) { 5 System.out.println("Hello World!"); 6 } 7 }
3.输入输出
c++的输入输出靠输入流cin,输出流cout、cerr、clog实现,需要写#include<iostream>。Java语言里没有像c++那样简便的一个函数完成输入,它的输入比较复杂。
1 import java.util.Scanner; 2 Scanner sc = new Scanner(System.in); 3 String a = sc.nextLine(); 4 int b = sc.nextInt(); 5 float c = sc.nextFloat(); 6 double d = sc.nextDouble();
Scanner类中没有nextChar方法,不能直接通过Scanner类从控制台读取char类型的变量,不能这样写
1 import java.util.Scanner; 2 Scanner sc = new Scanner(System.in); 3 char a = sc.nextChar(); //这种方法是错的,Scanner类中没有nextChar方法
Java的输出语句用法很简单:System.out.println();例如:
1 int age = 18; 2 String name = "张三"; 3 System.out.println(age + "岁的" + name);//输出结果为:18岁的张三
4.数组
c++中定义数组格式是:数据类型 数组名[数组长度];
数组静态初始化格式:数据类型 数组名[] = {元素1,2,...};
Java中定义数组格式是:数据类型[] 数组名 = new 数据类型[数组长度];
数组静态初始化格式:数据类型[] 数组名 = new 数据类型[]{元素1,2,...};
1 int[] a = new int[5]; //Java定义数组 2 double[] b = new double[]{0.1 2.3 4.5 6.7 8.9};//可简写为double[] b = {0.1 2.3 4.5 6.7 8.9};
目前学到这,未完待续(๑´ㅂ`๑)...