首页 > 代码库 > java之面向对象---上

java之面向对象---上

1:值类型

八大类型:整性—>byte(1字节),short(2字节),int(4字节),long(8字节);

              浮点数—>float(4字节)--8位整,23位小数,1位符号;double(8字节)--11位整数,52位小数,1位符号

              字符—>char(2字节)---汉语的原因吧

               逻辑型—>bool(1bit)

其它数据类型:类类型。

存储方式:8大类型变量存储于栈中;是值类型

              类类型变量,是引用类型,对象存放于堆中,在栈中存引用值,大小固定为4字节。

                             只能通过new来构造对象,不能像c++通过构造函数形式如 : 类名  对象  =  类名();因为这种是存入栈中的。

2:数组

数组定义兼容了c++的形式,同时增加了新的形式,这和c#一致的。

但是它的存储形式没有copy c++的形式,它都是将元素存放于堆中,栈中这是有它的引用值。

同时它依然具有静态赋值,和动态赋值效果。

 

3:类

类的很多方面和c#是一致的,和c++有些差别;

例如:

差异1:c++可以多继承,java不能

差异2:c++不能在定义时不能初始化,java可以;

差异3:c++关键字public只需要写一次,而Java需要每个成员都得写;

差异4:多态性上,c++是通过基类标有虚函数的才会有这种效果,而java确只要方法相同,就会认为有这种效果。

差异5:继承类型中多了default形式,这是因为有了包这个概念,其实实质和c#或者c++的命名空间类似,但是比其更加清晰。

差异6:Java没有指针,而c++有

差异7:java有初始化块代码,而c++没有

差异8:java组合方式是通过内嵌父类对象,而c++组合方式通过多继承。

 

4:关于公有默认情况

c++中类默认是私有;struct默认是公有;结构体写入栈中

java没有结构体,类默认为私有的。

C#中有结构体,默认是私有的;结构体写入栈中。此时即使用的是new关键字。