1.和C/C++相比,JAVA是鲜明的引用传递语言,而且因其强语言特性(即必须指定变量指向值的类型),引用性相比Python也体现的很明显,例如可以直接class[] x = new class[n];
定义所谓的指针数组(对象数组),然后依次x[0] = new class();
传递对象引用。
2.JAVA源文件中只能有一个公有类,但可以存在多个非公有类;类可以访问同一个包下所有的类(包括一个源文件中的公有类和非公有类)以及访问其他包下的公有类。
3.JAVA使用import命令引入其他包下的公有类,不同于Python引入是模块,然后通过模块调用其中的变量,函数以及类。
4.面向对象中类的属性方法可分为两种:静态属性方法以及对象属性方法。静态属性方法可直接从类逻辑块中调用,非静态属性方法则需要实例化对象后从对象逻辑块中调用。
P.编程语言拓扑
1.指针即数据结构和逻辑代码块的内存地址,在值传递语言中通过对变量和代码标识符(函数,类,对象)取指针操作获得,在引用传递语言中直接引用传递。
2.所有的语言实现机制中都有指针的存在,在传统值传递语言(C/C++, Perl
)中,因为变量都是值传递因此指针显式传递;在引用传递语言(python, Java
)中,指针隐式传递,即单值变量仍然使用值传递,而其余的数据结构变量则直接传递指针,但该过程由语言自身自动实现无需使用指针操作符,该特性通常称为引用。所谓的引用即隐式指针传递,并且引用可以直接变量使用无需解指针操作。
3.因为JAVA的引用特性,因而JAVA中变量的类型声明意义在于指明变量指向的内存数据类型或者变量指向内存指针索引内存数据的类型,考虑到在C++中声明数组指针(int (*p)[n]
)和指针数组(int *p[n]
)的语法,JAVA的确代表着发展趋势。