posts - 24,  comments - 29,  trackbacks - 0
                  類是對(duì)象的抽象,類是模板,類是一類事物經(jīng)過(guò)抽象,所共有屬性的集合。

                 比如有各種各樣的汽車,有轎車、貨車、面包車等,這些機(jī)動(dòng)車輛都可以被認(rèn)為是對(duì)象,如果讓我們用一個(gè)詞去概括它們(就是抽象的過(guò)程)那是什么呢?是汽車,它們都可以被稱為汽車(所以說(shuō),類是對(duì)象的抽象)。汽車這個(gè)概念是我們跟據(jù)不同的汽車抽象出來(lái)的,它能包括馬路上所有的機(jī)動(dòng)車輛,那么汽車這個(gè)概念就可以針對(duì)我們java中的類,它并不是具體指哪一輛汽車,也不是具體指那一種汽車,它是一個(gè)統(tǒng)稱(模板)它具有一定的內(nèi)容(屬性的集合),比如說(shuō),必須動(dòng)力驅(qū)動(dòng)、有車輪等屬性,如果想讓一個(gè)對(duì)象被稱為是汽車,你必須滿足這些屬性(類是模板),如果是馬拉的車,那就不能叫汽車了。這就是Java中類概念的內(nèi)涵。

                   現(xiàn)在我們已經(jīng)抽象出一個(gè)類——汽車類,汽車有不同的牌子,有不同的顏色,不同的形狀,我們稱每一輛具體的汽車為汽車類的一個(gè)實(shí)例,從汽車類到具體汽車的過(guò)程被稱為實(shí)例化的過(guò)程,又稱為類(汽車類)的實(shí)例化。在Java中一個(gè)類的實(shí)例化是通過(guò)關(guān)鍵字“new”來(lái)進(jìn)行的。

          比如說(shuō)我們現(xiàn)在聲明一個(gè)汽車類:

          public class Car

          {

          ……

          }

          進(jìn)著進(jìn)行一個(gè)類的實(shí)例化:

          new Car();

          一個(gè)類的實(shí)例是針對(duì)一個(gè)具體的對(duì)象的,它是一些具體屬性的集合,

          設(shè)計(jì)自己的類

                下面設(shè)計(jì)一個(gè)自己的類,我們的目的是做一個(gè)小型的學(xué)生管理系統(tǒng),既然是學(xué)生管理系統(tǒng),我們必須要擁有學(xué)生類,下面我們就開(kāi)始設(shè)計(jì)一個(gè)學(xué)生類。

          需求分析:

          1、 對(duì)于一個(gè)學(xué)生類(class  Student),作為整個(gè)系統(tǒng)最核心的類,我們希望它能包括學(xué)生公有的基本信息:學(xué)生姓名、學(xué)號(hào)、性別、出生年月、專業(yè)、籍貫等。

          2、 做為學(xué)生類的實(shí)例,我們希望能通過(guò)設(shè)置或訪問(wèn)來(lái)修改這些學(xué)生的不同信息。

          public class StudentTest

          {

                 public static void main(String[] args)

                 {

                        Student tom=new Student("Tom","20020410");

                        tom.setStudentSex("man");

                        tom.setStudentAddress("America");

                        System.out.println(tom.toString());

                 }

          }

          class Student

          {

                 private String strName=""; //學(xué)生姓名

                 private String strNumber=""; //學(xué)號(hào)

                 private String strSex=""; //性別

                 private String strBirthday=""; //出生年月

                 private String strSpeciality=""; //專業(yè)

                 private String strAddress="";

                 public Student(String name,String number)

                 {

                        strName=name;

                        strNumber=number;

                 }

                 public String getStudentName()

                 {

                        return strName;

                 }

                 public String getStudentNumber()

                 {

                        return strNumber;

                 }

                 public void setStudentSex(String sex)

                 {

                        strSex=sex;

                 }

                 public String getStudentSex()

                 {

                        return strSex;

                 }

                 public String getStudentBirthday()

                 {

                        return strBirthday;

                 }

                 public void setStudentBirthday(String birthday)

                 {

                        strBirthday=birthday;

                 }

                 public String getStudentSpeciality()

                 {

                        return strSpeciality;

                 }

                 public void setStudentSpeciality(String speciality)

                 {

                        strSpeciality=speciality;

                 }

                 public String getStudentAddress()

                 {

                        return strAddress;

                 }

                 public void setStudentAddress(String address)

                 {

                        strAddress=address;

                 }

                 public String toString()

                 {

                        String information="學(xué)生姓名="+strName+",學(xué)號(hào)="+strNumber;

                        if(!strSex.equals(""))

                               information+=",性別="+strSex;

                        if(!strBirthday.equals(""))

                               information+=",出生年月="+strBirthday;

                        if(!strSpeciality.equals(""))

                               information+=",專業(yè)="+strSpeciality;

                        if(!strAddress.equals(""))

                               information+=",籍貫="+strAddress;

                        return information;

                 }

          }

          分析:

               在程序中我們構(gòu)建了一個(gè)學(xué)生類的實(shí)例:

          Student tom=new Student("Tom","20020410");

          這樣的過(guò)程就是類的實(shí)例化的過(guò)程。tom是Student類實(shí)例的句柄,也就是我們所說(shuō)的對(duì)象句柄,在后面對(duì)對(duì)象所進(jìn)行的任何操作,都是通過(guò)操作對(duì)象句柄進(jìn)行的。我們通過(guò)關(guān)鍵字new生成Student類的一個(gè)實(shí)例,一個(gè)實(shí)例代表的是一個(gè)特定屬性的對(duì)象,我們生成的特定對(duì)象是學(xué)生:姓名是tom,學(xué)號(hào)是20020410的一個(gè)學(xué)生。

          構(gòu)造器(構(gòu)造方法)

          能過(guò)關(guān)鍵字new來(lái)生成對(duì)象的實(shí)例,是通過(guò)構(gòu)造器(constructor)來(lái)實(shí)現(xiàn)的。簡(jiǎn)單的說(shuō):構(gòu)造器是同類名相同的特殊方法。

          public Student(Student name,String number)

          {

           strName=name;

           strNumber=number;

          }

          當(dāng)構(gòu)造一個(gè)學(xué)生類的實(shí)例時(shí),學(xué)生類的構(gòu)造器就被啟動(dòng),它給實(shí)例字段賦值。

          構(gòu)造器與方法的不同之處是:構(gòu)造器只能與關(guān)鍵字new一起使用,構(gòu)建新的對(duì)象。構(gòu)造器不能應(yīng)用于一個(gè)已經(jīng)存在的對(duì)象來(lái)重新設(shè)置實(shí)例字段的值。

          構(gòu)造器的特點(diǎn):

          1、 構(gòu)造器與類名相同(包括大小寫(xiě))

          2、 一個(gè)類可有多個(gè)構(gòu)造器。

          3、 構(gòu)造器可以有0個(gè)、1個(gè)或多個(gè)參數(shù)。

          4、 構(gòu)造器沒(méi)的返回值,但不能用void修飾。

          構(gòu)造器總是和new運(yùn)算符一起被調(diào)用。
          posted on 2007-08-18 12:57 心隨Wǒ動(dòng) 閱讀(389) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2007年8月>
          2930311234
          567891011
          12131415161718
          19202122232425
          2627282930311
          2345678

          QQ群:9028409
          QQ:29850994
          點(diǎn)擊這里給我發(fā)消息

          留言簿(2)

          隨筆檔案

          積分與排名

          • 積分 - 31452
          • 排名 - 1348

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 云南省| 元氏县| 乌兰县| 聊城市| 郴州市| 嵊泗县| 昭通市| 乡城县| 信阳市| 东城区| 万年县| 江油市| 西丰县| 甘洛县| 清水县| 太仓市| 泗洪县| 东明县| 益阳市| 吴堡县| 清水县| 漾濞| 东乌| 固原市| 丰台区| 合水县| 綦江县| 淮阳县| 敖汉旗| 梁河县| 阳江市| 泰来县| 股票| 安阳市| 锦州市| 宁乡县| 赤峰市| 古丈县| 龙陵县| 桑日县| 柏乡县|