小说妹妹网

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

第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对象。

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

热门小说推荐
另类贵族

另类贵族

彪悍的人生,从来不需要解释书友一群144298927,欢迎大家进来讨论剧情...

无良仙灵

无良仙灵

天性狡狯的少女,也有上当的一天,竟然被骗到荒原邪派。不过不要紧,到哪里都能偷鸡摸狗,混得如鱼得水。没有法宝,有手脚。没有强大的后台,有手脚。天生我材必有用,无用只是未到有用时。可是,到底是被谁愚弄?谁能告诉我,我到底是人,是鬼,还是灵。鬼也罢,灵也罢,请看我藐视天下的眼神七魄三魂我全都要炼就,燕雀焉知鸿鹄之志!存稿多多,放心跳坑哦!...

黑铁之堡

黑铁之堡

大灾变之后,世间的一切规则重写,黑铁时代来临,钢铁,蒸汽,武力成为人类赖以生存下去的最大依靠,一个只想混吃等死的惨绿少年,懵懵懂懂之中,被命运之神在屁股上狠狠踹了一脚,少年惨叫一声,打着滚,一头扎进那片无限广袤大陆的洪流之中...

嫡女难嫁

嫡女难嫁

穿越成深闺小姐,忒没趣。建功立业叱咤武林就算了,平平安安嫁人过日子得了!以为会水到渠成的青梅竹马,黄了。男闺蜜能凑个数吧,还不好意思下手呢,竟然碰上家国之难点名到头?!得得,无名嫡女,这下怎么嫁是好?...

学长凶猛

学长凶猛

英雄是他的名字,暴熊是他的象征。瞎混是他的专业,修道是他的副业。学生是他的装饰,妞儿是他的衣服。被校花群上是他的魅力,群虐校草是他的风格。炼丹是他的爱好,刻划纹章是他的兴趣。拐拐圣女,坑坑神棍,混着混着又一混沌纪。-------------------------------------------------------------------已经完成仙侠作品九天御剑录,品质有保证,书荒的可以移步去瞧瞧。下方有书页直通。...

噬骨冥约,我的鬼夫君

噬骨冥约,我的鬼夫君

莫名其妙跟一个死人结了冥婚,还非得要我生个鬼胎!好在这个鬼夫还算有点儿良心,带着我逃离了这个魔窟可是,为啥诡异恐怖的事情接二连三发生?无头连体女被戳瞎双目的孩童只剩半截身躯的中年大叔,一群群面目全非的怪物接踵而至,不为人知的秘密一个个被揭穿,我又该如何应对?偏偏鬼夫还是个缩头乌龟,万事都要我替他挡,毒舌功夫无人能及,我到底倒了什么血霉,才碰上这么个玩意儿?...

每日热搜小说推荐