从目前的学习情况来看,Java与C++还是有很多类似的地方,让我有刚开学学习C++的感觉,所以暂时学起来并不是非常困难。
总结一下Java与C++的学起来的不同以及一些学习心得。
Java可以直接通过记事本编译,虽然几乎已经被舍弃。使用eclipse等编译器会有更好的编译体验。
一、输入输出
import java.util.Scanner;//输入所需要的类似于C++头文件
public class Welcom {
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);//输入所需要的
String name =scanner.nextLine();//输入name
int age=scanner.nextInt();
System.out.println(name);//输出name
System.out.println(age);
System.out.println("Java太有意思啦");
}
}
输入:
z
18
输出:
z
18
Java太有意思啦
输入输出不同,其中如果用println再输出数据后会换行,用print不会
二、定义变量
基本与C++相同,但是整数默认为int型,小数默认定义为double型,如果想要将超过int型上限的数定义为long型,需要在数字后加L,小数被定义成float需要数字后加F。
public class Welcom {
public static void main(String[] args){
long a=19000000000000;//错误。19000000000000被默认定义为int
long b=19000000000000L;//正确
float c=18.0;//18.0 默认为double型
float d=18.0F;//正确
}
}
Java有自动类型转换,容量小的数据类型可以自动转为容量大的数据类型。
shor,char,byte等数据类型是特例,只要不超过他们的容量上限,就可以自动转换。
public class Welcom {
public static void main(String[] args){
short a=100;//正确
}
}
强制转换与C++相同。
三、分支结构,循环结构
与C++一摸一样,switch语句,break用法,嵌套循环等各种用法都没有区别。
public class Welcom {
public static void main(String[] args){
for(int i=1;i<=5;i++)
{
for(int k=0;k<5-i;k++)
{
System.out.print(" ");
}
for(int j=0;j<2*i-1;j++)
{
System.out.print("*");
}
System.out.println();
}
}
}
输出:
*
***
*****
*******
*********
四、方法
类似与C++里的函数,也可以重载。函数前加static可以被直接调用,不需要对象。
public class Welcom {
public static void main(String[] args){
Welcom dx=new Welcom();
a();
System.out.println(dx.b());
}
static void a()
{
System.out.println(666);
}
int b()
{
return 233;
}
}
输出:
666
233
五、面向对象
继承与C++不同,没有公有私有,而是extends,且不能多继承。
class Base {
public int m;
}
class Derieve extends Base {
public int m;
public int n;
}
public class TestDemo {
public static void main(String[] args) {
Base base = new Derieve();
}
}
Derieve继承Base类,继承一个变量m
六、数组
定义方式与C++不同,用法差别不大。
public class Welcom {
public static void main(String[] args){
int[] num=new int[5];
for(int i=0;i<5;i++)
num[i]=i;
for(int i=0;i<5;i++)
System.out.println(num[i]);
}
}
二维数组与C++也没区别。
数组名.length可以返回数组长度
不初始化时int型默认0,bool型默认false,String默认为null
七、
Math.random()可以用来产生[0,1)之间的随机数。
System.currentTimeMillis()可以返回程序运行到这个地方时的时间,精确到毫秒。
final的一些用法,定义常量,让方法或类只能出现一次。