|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
C#是盗用了Java的源代码,仿照开发的,原因是Java是开源的啊,盗了也白盗,还有一点,开发C#语言的团队是就是开发Java语言的团队,是微软重金挖过去的啊观点比来想看看书,懂得一下java的基础观点,实在之前也看过,可是囫囵吞枣,其实无愧.但是温故以知新,进修本应就是了解深化的历程.
次要看的书是《Java2参考年夜全》和《Java2中心手艺:道理》
Java基础观点
一.字符范例
次要重温了一下各类字符范例占有的字节数。
short短整型16位2字节
int整型32位4字节
long长整型64位8字节
浮点分单精度float和双精度double
float单精度32位4字节
double双精度64位8字节
char这一点对照特别,java利用的不是ascii字符,也不是扩大的8位字符集,而是unicode字符集,unicode字符占有16位,2字节,能够暗示人类一切发明的字符,也由于云云java能够对照便利的举行国际化,不知这个了解有没有成绩。
实践上char的值是个整数(0-65536),因而我们给char赋值能够用整数大概用单引号括起来的字符
特地就看了一下UTF(unicodetextformat)格局,它是如许出来16位的unicode字符
前九位为0的unicode字符:一个字节
前五位为0的unicode字符:两个字节
别的:三个字节
对应的前缀编码:
0xxxxxxxAscii码
10xxxxxx第二大概第三个字节
110xxxxx两字节序列中的第一个字节
1110xxxx三字节序列中的第一个字节
二.类
类与对象:类是一个逻辑布局,对象具有物理实体.也就是说类不占有内存空间,对象占有必定的内存空间.能够从类对象的猎取申明这个成绩。
BoxaBox=newBox();
实践上这个历程分两步
BoxaBox;
aBox=newBox();
第一步是创立一个对象,前往的aBox是一个对象的援用。
第二步才是挪用机关函数,为对象分派内存空间,前往的是这个内存地点的援用,这个援用被赋给了aBox。
机关函数是怎样事情的呢?
机关函数没有前往值,是由于其隐含的前往范例是类自己。
默许的机关函数主动将一切的实例变量初始化为0。
实例变量便是一个类中界说的数据或变量,类的成员是指类中界说的办法和变量。
援用是个很成心思的工具。
Boxa=newBox();
Boxb=newBox();
这个时分a和b对应各自的内存地点,假如
a=b;
这个时分a,b均指向统一个内存地点即b的内存地点。也就是说如今你变动a中的成员变量的值b的变量的值也随之改动;假如改动b中成员变量的值,a的对应变量也随之改动。援用只是一个内存的地点。
类中有个词语叫做笼统类,笼统类有良多寄义和细节必要注重:
1。包括笼统办法的类必需声明为笼统类
2。笼统类的办法在子类中必需被掩盖,不然子类也必需声明为笼统类
3。笼统类不克不及有对象,不克不及new一个笼统类将实在例化
4。笼统类能够有笼统办法也能够有详细完成了的办法
5。笼统类能够创立对象援用
第五条十分有效,能够完成多态。李乾师兄曾解说的计划形式中的工场办法也就是笼统类的超类变量援用分歧的子类对象。
因为接口都没有完成本身的办法,假如一个类没有完成接口中的办法,也必需界说为笼统类。
三.接口
接口只界说办法名,可是不完成办法。
接口能够声明变量,可是这些变量将是隐含的、终极的、静态的,不克不及由完成接口的类来改动。因而能够将共享常量在接口中界说,然后导进到多个类中。
可使用接口援用来挪用完成,这是甚么意义呢?
inerfacecallback()
{
publicvoidcall(intp)
{
}
}
classclientimplementscallback
{
publicvoidcall(intp)
{
}
}
publicstaticvoid(Stringarg[])
{
<b>callbackc=newclient();</b>
c.call(1);
}
注重下面黑体字部分callbackc=newclient(),创立了一个client对象,却声明为接口范例,这个中的意义就是c只是晓得接口callback中办法,至于完成这个接口的client类另有甚么别的的办法,c一概不知。这有些相似超类援用子类对象,很有效处的中央就是完成多态,良多完成这个接口的类能够用统一个接口的援用来挪用。
四.会见把持
五.一些保存字的寄义和使用
static:一样平常润色类的成员,使该类成员自力于类的任何对象,利用类名便可挪用。
利用static要注重:
1.static办法仅可挪用别的的static办法
2.只能会见static数据
3.不克不及以任何体例挪用this大概super。(还不分明为何)
this:在任何办法中都可使用this来挪用以后的对象,this老是以后对象的一个援用。
this能够用于实例变量埋没
所谓实例变量埋没,就是说当一个当地变量和一个实例变量同名时,实例变量就被埋没了。好比Box的机关函数
Box(doubleaWidth,doubleaHeight,doubleaDepth)
{
width=aWidth;
height=aHeight;
depth=aDepth;
}
假如这时候候参数是width,height,depth,则这些当地的变量就会和类的成员变量同名,这时候候就会产生实例变量被埋没的征象。可是this能够制止这类情形。
Box(doublewidth,doubleheight,doubledepth)
{
this.width=width;
this.height=height;
this.depth=depth;
}
this间接援用对象,能够办理名字空间的成绩,即当地变量和类的实例变量同名的成绩。(这个必要再想一想)
super:次要有两种用法
1。super(parameter_list)挪用超类的机关函数,可是这必需是子类机关函数的第一条语句。这里风趣的事变是子类机关函数挪用超类机关函数时,历程是怎样的;实践上是依照类的派生按次挪用机关函数。
2。super.member这时候候作为超类对象的援用挪用超类的办法大概实例变量
final:可润色变量,办法和类。
final变量:变量的内容不克不及被修正
final办法:办法不克不及被重载
final类:类不克不及被承继
进而能拉拢大多数程序员用windows产品。并且从ASP.NETAJAX可以跨平台这一点上,间接证明了我们的推断,至少证明了微软做过这方面的研究。所以如果哪一天突然听说了.net可以跨平台了,那么请不要吃惊,如果这一天真的到来,java就到了真正和.net决战的时刻。因为不到万不得以的时候微软是不会推出跨平台的.net的,如果跨平台的.net还不足以对抗java的话,那么微软还剩的手段就是开源了,呵呵。 |
|