l 类的访问控制符: 只有public和默认, 类型说明符: abstract和final. 而类的成员访问控制为: public,protected,private和默认. 这与c++不同, 在c++中类的访问控制符没有. 继承中使用public和private, 而类的成员访问控制为: public,protected,private.
l 抽象类不能用来定义对象,它通常设计来作为父类
l 最终类不能被派生,作为其它类的父类. 因此abstract和final不能同时存在
l java中所有的变量和方法都必须属于某个类,而C++则可以有全局变量,函数等.
l 无论是成员变量还是成员方法, public的则可以被任何地方的类对象访问, private只能在该类中访问, protected只能被该类,该类的派生类,同名包下的类访问. 而默认只能被该类本身和同名包下的类访问.
l Transient指明该成员变量是临时变量.
l 一个类对应一个.class文件,一个文件中可以定义多个类,但是只能有一个public类,文件名和该类名一致.
l Java中无论是访问成员方法还是成员变量都是用对象名.成员名, 而在c++中,只有public的成员函数和数据成员才可以这样访问.
l 对象和数组一样是引用类型.
l Java中的对象名也是保存对象在内存中存放的首地址,而不是对象第一个元素的内容.
l Java中基本数据类型是按值传递的,但是对象都是按引用传递的,包括对象间的赋值也是如此. 在c++中,可以有按值传递,按引用和指针传递.
l Java中内存的分配都是考new来分配的,但是内存的回收则是有自动垃圾回收线程负责.
l 实例方法可以访问可以访问类变量,类方法,实例变量和实例方法,但是类方法只能访问类变量(static的)和类方法.
l 同一个包下的文件名必须唯一,不同包下的文件名可以相同.
l Import只能导入public的类和接口.
l 如果一个类被嵌套到另一个类中,则是内部类. 在外部类中,一般通过内部类的对象来访问内部类的成员变量和方法, 在内部类中, 可以直接访问外部类的成员变量和方法(包括静态的变量,方法, 实例的变量方法, 和私有的变量和方法)