class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: 150%;">从上次写的10行代码看java与c++的异同
?
c++和java定义一个类都是使用class,然后都是用大括号包着;
但是里面c++是写一次public,下面定义的都是public,记得后面必须有个冒号,可以出现多个public;java需要每个前面都注明是public;
java一般会在class前加public,不加则别的类不能使用,但是不能写private和protected,c++是否可以加?
java里也有null,不过java是全小写,c++里的NULL是全大写;
java和c++都是有public、proteced、private;
classDetailbillMgr
{
public:
??? DetailbillMgr()
??? {
??? ??? m_AltibaseIntf = NULL;// ou
??? }
private:
??? abdb::AltibaseIntf * m_AltibaseIntf;// ou
};
?
c++可以定义对象指针,在对象名前面加个*,也可以定义对象,java只能定义对象;
c++和java都是用new来创建一个对象,c++返回的是对象指针,java返回的是对象引用;c++最后可以没有括号,java必须有括号;
c++有命名空间,java没有,但是java有package;如果两个类使用了同一个类名,c++是通过“命名空间::类名”区分,java通过“package.类名”区分;
命名空间一般是一个单词,比如log4cpp;package一般是一个路径,比如java.util.Map;
如果在文件一开始引入了命名空间或包路径,则下面就可以直接使用里面的东西,c++的引入是using?namespace,java是import;
c++可以include头文件,java没有头文件,包路径已经指向了类所在位置,所以c++的include+using namespace=java的import;
c++如果引命名空间则using namespace,如果引其中的类,则using;java都是使用import;
abdb::AltibaseIntf * abdbi;
if(m_AltibaseIntf==NULL)
{
??? m_AltibaseIntf = new abdb::AltibaseIntf;
}
m_AltibaseIntf =? abdb::connectAltibase(m_AltibaseIntf);
abdbi = m_AltibaseIntf;
?
如果一个函数是static,c++的调用方式是“类名::函数名”,java是“类名.方法名”;
成员行为,c++一般叫函数,java一般叫方法;
abdb::AltibaseIntf * abdbi = abdb::AltibaseIntf::getInstance();
abdbi =? abdb::connectAltibase(abdbi);
?
java每句代码结束必须有分号“;”,每个方法和类的结束可以有分号也可以没有分号,一般不写分号
c++?
classAltibaseIntf {
public:
??? stringcurTimeStamp; // Ou
};
?
c++和java的注释符是一样的,都是有两种,//和/**/;
c++如果是对象指针调用函数/成员变量,用符号“->”,如果是对象调用函数则用符号“.”;
java只有对象,调用方法/成员变量就是用“.”;
//当前时间戳
//static string curTimeStamp("");ou
if(handle->curTimeStamp < timeStamp)//ou
{
??? handle->disConnect();
??? handle->setConnInfo(abdbUser, abdbPassWd, abdbDsn, abdbPort);
??? handle->connect();
??? handle->curTimeStamp = timeStamp;
}