乐文小说网

手机浏览器扫描二维码访问

第5部分(第1页)

Interger。toString(decimalValue;8);}if(whick。equals(”Hex”))

{decimalValue=Integer。parseInt(dDisplay。getText());baseXValue=

Interger。toString(decimalValue;16);}if(whick。equals(”36”))

{decimalValue=Integer。parseInt(dDisplay。getText());baseXValue=

Interger。toString(decimalValue;36);}updateXDisplay();returntrue;}

returnfalse;}

publicstaticvoidmain(Stringargs''){d2xm=newd2x();m。start();}}

本章小结:

1。java有两种类型的应用程序,一种是直接运行在java虚拟机上,用java命令执行;另一种运行在浏览器里,由浏览器调用执行,一般称它为Applet小程序。本书主要讨论第一种应用程序。2。java应用程序是由类组成的,而且用java命令行执行的类必须有main入口函数。3。与C语言相似,java程序也可由命令行传递给main函数参数。4。基本窗口java程序的基本类是Frame。利用它可以很方便地建立图形用户界面程序。

第五章Java的类

类是Java语言面向对象编程的基本元素,它定义了一个对象的结构和行为。在Java程序里,你要表达的概念封装在某个类里。一个类定义了一个对象的结构和它的功能接口,功能接口称为成员函数。当Java程序运行时,系统用类的定义创建类的实例,类的实例是真正的对象。类定义的一般形式如下:

classclassnameextendssuperclassname{typeinstance…variable1;typeinstance…variable2;。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。typeinstance…variableN;typemethodname1(parameter…list){method…body;}typemethodname2(parameter…list){method…body;}。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。typemethodnameN(parameter…list){method…body;}}

这里,classname和superclassname是合法的标识符。关键词extends用来表明classname是superclassname派生的子类。有一个类叫做Object,它是所有Java类的根。如果你想定义Object的直接子类,你可以省略extends子句,编译器会自动包含它。下面是一个简单的类的定义。classUniversity{}

5。1对象实例

类名可以作为变量的类型来使用,如果一个变量的类型是某个类,那么它将指向这个类的实例,称为对象实例。所有对象实例和它们的类型(某个类?copy;的子类的实例都是相容的。就象可以把byte型的值赋给int型的变量一样,你可以把Object的子类的任何实例赋给一个Object型的变量。一个实例是类模板的单独的拷贝,带有自己的称为实例变量的数据集。每个实例也可以作为一个对象。当你定义一个变量的类型是某个类时,它的缺省值是null,null是Object的一个实例。对象null没有值,它和整数0不同。下面这个例子中,声明变量u的类型是类University。Universityu;这里,变量u的值是null。

5。2实例变量

Java通过在类定义的大括号里声明变量来把数据封装在一个类里。这里的变量称为实例变量。下面的例子定义了一个叫做University的类,它有两个实例变量:name和city。classUniversity{Stringname;city;}

5。3new操作符

操作符new用来生成一个类的实例,下面这个例子生成了类University的一个实例,存放在变量u中。

Universityu=newUniversity();在此例中,变量u指向这个对象,但并不真正包含这个对象。你可以用多个变量指向同一个对象。下面的例子中,创建了一个University的对象,但创建了两个指向它的变量。

Universityu=newUniversity();Universityu2=u;

对u2所指向的对象的任何改动都会对u所指向的对象起作用,因为它们是同一个对象。对u和u2的赋值只是把它们指向这个对象,既没有分配内存,也没有复制这个对象的任何部分。对u的再赋值只是简单地去掉了u和原来对象的联系,并不影响对象本身,下面的例子说明了这种情况。

Universityu=newUniversity();Universityu2=u;u=null;

尽管u被赋值为null,u2仍指向原来由操作符new创建的对象。在前面的例子里,我们生成了一个对象并且指向了它两次。这就允许两个变量改变同一个对象。创建一个新的对象时,可直接对它的实例变量赋值。每个对象都有它所属类的实例变量的拷贝,每个对象的实例变量都是和其他对象的实例变量分离的,所以改变一个对象的实例变量不会影响其他对象的实例变量。下面的例子创建了两个University的对象,并对它们分别赋值:classTwoUniversity{publicstaticvoidmain(Stringargs''){Universityu1=newUniversity();Universityu2=newUniversity();u1。name=”北?copy;大学”;u1。city=”北?copy;”;u2。name=”清华大学”;u2。city=”北?copy;”;System。out。println(”大学:”+u1。name+”城市:”+u1。city);System。out。println(”大学:”+u2。name+”城市:”+u2。city);}}这个例子创建了两个University的对象,并且对它们的name、city分别赋了不同的值,这说明这两个对象是真正分离的。下面是该程序运行后的输出结果。C:》javaTwoUniversity大学:北?copy;大学城市:北?copy;大学:清华大学城市:北?copy;

5。4点(。?copy;操作符点(。?copy;操作符用来接收一个对象的实例变量和成员函数。下面是用点操作符来接收实例变量的一般形式。objectreference。variablename

这里objectreference是一个对象实例,variablename是这个对象里你想接收的实例变量。下面的程序段说明了怎样用点操作符来给实例变量赋值。

u。name=”北?copy;大学”;u。city=”北?copy;”;下面说明怎样用点操作符来得到实例变量的值。System。out。println(”大学:”+u。name+”城市:”+u。city);通过向类University里加入一个成员函数main,我们创建了一个完整的例子,它使用了new操作符来创建一个University,用点操作符来赋值,然后打印结果。classUniversity{Stringname;city;publicstaticvoidmain(Stringargs''){Universityu=newUniversity();u。name=”北?copy;大学”;u。city=”北?copy;”;System。out。println(”大学:”+u。name+”城市:”+u。city);}}

运行这个程序后,就会得到下面的结果。C:》javaUniversity大学:北?copy;大学城市:北?copy;

5。5成员函数定义

成员函数,是类的功能接口,是类定义里的一个子程序,在类的定义里和实例变量处于同一级别。你必须通过一个类的实例来调用成员函数。成员函数可以不用点操作符而直接使用实例变量。成员函数带有输入参数,具有

某种类型的返回值。成员函数定义的一般形式如下:typemethodname(formal…parameter…list){method…body;}这里type指的是成员函数的返回值的类型,如果没有返回值,就用无值(void?copy;类型。methodname可以是任何合法的标识符,但不能与当前的类名相同。formal…parameter…list是用逗号分隔的类型、标识符对的序列。如果没有参数,括号里就是空的。还是用我们的University的例子,下面的成员函数用来初始化两个实例变量。成员函数是在类的大括号?reg;内定义的,和实例变量所处的范围相同。classUniversity{Stringname;city;voidinit(Stringa;Stringb){name=a;city=b;}}

注意,我们这里直接给name和city赋值,而没有象以前那样用u1。name。这是因为每个成员函数都在类的个别实例内执行。我们创建的类的实例具有它自己的实例变量,所以成员函数可直接使用它们。

5。6成员函数调用

可以用点(。?copy;操作符来调用一个类的实例的成员函数。成员函数调用的一般形式如下:objectreference。methodname(parameter…list);这里,objectreference是指向某个对象的变量,methodname是objectreference所属类的一个成员函数,parameter…list是用逗号分隔的变量或表达式的序列,它们要与该成员函数的定义的参数个数及类型匹配。在这个例子里,我们可以对任何University对象调用成员函数init来给name和city赋值。下面的程序段说明了怎样完成这个工作。Universityu=newUniversity();u。init(”北?copy;大学”;”北?copy;”);这个例子创建了University的一个实例,存放在u中。通过点操作符来调用这个实例的init成员函数,把”北?copy;大学”和”北?copy;”分别传递给参数a和b。在init成员函数内部,name和city直接指向u所指向的对象的实例变量。把name赋值为”北?copy;大学”,city赋值为”北?copy;”,然后返回。在这个例子里,init被定义为无值(void?copy;返回类型。在进行这个成员函数调用后,u指向这个name值和city值改变了的University对象。

闲巫在都市  天空大陆  产生物  穿越之正妻诱惑 02.25完结+1番外  洪荒老祖已无敌  节妇的悠然生活  东北谜踪  魅魔模拟器  游神传说之界王  众语皆悲  道君且慢  鬼夜  黄帝内经实用手册    史上最拽的十个女人  元宝传奇  上古卷轴天际之子  要说多少次,我不是人奸!  娘亲V5父皇很欠抽  荒界实录  

热门小说推荐
异界军队

异界军队

一个现代军人在异界的别样军旅人生。看他如何在动荡和战乱中,缔造属于军人的荣誉和骄傲在血腥和杀戮中,展现军人的冷酷和忠诚在寂寞和孤独中,演绎军人的铁骨和柔情。如果你心中曾有一个从军的梦,那么进来吧,我们一起出发,去追梦!VIP书友群53270415(需验证)本书繁体已经出版,台湾地区有售,书名蓝月风云,欢迎台湾地区读者购买。谢谢!...

网游之荒古时代

网游之荒古时代

在这里,你可以见到种种神秘的部族在这里,你可以挑战无数的荒古巨兽在这里,你可以去到深山大泽中探寻天材地宝在这里,只要你的实力足够强大,你甚至可以去挑战仙挑战神挑战祖灵,挑战你头顶的那一片天!这里,有着一切的可能!新书已经发布,天选者游戏,欢迎大家品鉴!小说关键词网游之荒古时代无弹窗网游之荒古时代txt全集下载网游之荒古时代最新章节阅读...

战国之赵氏春秋

战国之赵氏春秋

风萧萧兮易水寒,壮士一去兮不复还。战国一曲,是你方唱罢我登场!匆匆来过,匆匆而走,是留下点什么?还是,挥一挥衣袖不带走一片云彩?...

最权商

最权商

我最大的权力是我的财富我最大的财富是我的权力敬请看,双料博士重生为默默无闻的在校大学生,如何发迹,如何游走于众美之间,俘获美女芳心。又如何在官场商场如鱼得水,游刃有余地走一条权力和财富相辅相承的权商之路PS本书已A签,大家放心收藏,必定完本。...

独步天途

独步天途

浩渺大陆,奇珍长存,凶兽横行,武道成仙。有神山高耸万丈,有仙河九曲成弯,自古时以来大陆之上风云轮转,乱世动荡。少年张仲军,本应继承父亲爵位,却因天赋骤消,...

变身之把反派养歪了肿么破

变身之把反派养歪了肿么破

文风清奇一枝花,反派萌萌哒!世间总有真情在,穿越变妹真可爱!(ps如果本书均订破百,帅比作者就直播女装,节操神马的都不要了,读者老爷们求助攻!)...

每日热搜小说推荐