个人博客地址:https://huchangwei.github.io
1、Java的两个基础特性
(1)所有对象都是继承字单根基类Object.
(2)只能以一种方式创建对象(在堆上创建).
2、常见总结
(1)Java的逗号表达式只能用于for语句里,如
for(int i = 0, j = i + 10; i<5 ; i++ )
{
;
}
(2)Java添加了foreach的用法,跟C++ STL里的范型极其类似,简单用法如下:
for(int i : range())
printnb(i + " ");
//:后面必须是一个数组,可以迭代数组的元素
(3)Java同样支持构造函数,在Java里称为构造器,使用方法与C++是一样的:
class Test{
Test(){PP
System.out.println("Test constructor");
}
//重载
Test(int i){
System.out.println("Test constructor" + i);
}
}
需要注意的是,如果没有声明构造器Java会调用默认的构造器,但是如果已经定义了构造器(无论是否有参数),编译器不会再自动创建默认构造器,如:
class Test{
Test(int i){}
]
Test t = new Test();//会报错,因为没有这个构造器
(4)static关键字:在static方法内部不能调用非静态方法,反过来可以调用。Java中禁止使用全局方法,static方法可以直接通过类调用,这点跟C++相同,static方法内部不存在this指针。
static初始化可以通过静态块中初始化,如:
static int j;
static {
j = 5;
}
(5)Java支持可变参数列表,如:
public class Args{
static void printArray(Object... args){
for(Object obj: args){
System.out.print(obj + " ");
}
}
public static void main(String[] args){
printArray(1, 2, 3);
printArray("a", "b", "c");
}
}
(6)public的类要放到单独的一个文件里面去,并以该类名作为文件名,如:
//Test.java
//编译出错
public class Test{
}
public class Hello{
}
要想在同一个文件声明多个类,只能有一个public,private,protectes不能修饰类,只能修饰方法和变量:
//Test.java
//合法
public class Test{
}
class Hello{
}
(7)Java与C++有个重要的不同,Java的每个类都可以含有自己的main函数,并且其他类可以调用其main函数,这个特性可使得每个类的单元测试都变得简便易行。而且在完成单元测试之后,也无需删除main(),可以留待下次单元测试。