- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章 物件導向
物件導向
在物件導向理論眼中的軟體系統,並沒有所謂資料與程序的分野;而是由一群同心協力的物件,合力組織並完成所有的工作。每一項工作都分層負責,同時每個獨立的物件都可以視為分工階層的一員,而有其適當的關係與聯繫,以訊息來溝通,達成模擬世界、加以處理的目的。故在物件導向理論中認為,一個物件導向程式語言應該具有的特性為:
抽象資料型態(abstract data type)
封裝性(encapsulation)、資訊隱藏(data hiding)
繼承性(inheritance)
多載(overloading)、覆載(overriding)
動態連結(dynamic binding)
多型(polymorphism)
在下面的章節裡,我們會一一介紹這些特性。
抽象資料型態(abstract data type)
抽象資料型態是用以表達外界真實事物的抽象敘述,這種抽象資料型態有時稱為物件(object)。它必須有一個資料結構(類別)來儲存資料,並且有狀態與行為;更可以被創造、消滅、以及識別。
在Java語言中,物件是以下列的方式宣告:
格式:
類別修飾詞 class 類別名稱 {
類別變數(屬性);
類別的行為;
}
範例一:
// smallobj.java
// demonstrates a small, simple object
import java.io.*;
public class SmallObj
{
int somedata;
SmallObj()
{
}
public void setdata(int d)
{
somedata = d;
}
public void showdata()
{
System.out.println(“\nData is ” + somedata);
}
}
public class SmallObjDemo {
public static void main(String args[])
{
SmallObj s1 = new SmallObj();
SmallObj s2 = new SmallObj();
s1.setdata(1066);
s2.setdata(1776);
s1.showdata();
s2.showdata();
}
}
類別(class)與實例(instance)
在Java語言中,類別是用來定義物件的特性及行為,所以只有定義類別,是無法使用物件的。如同變數的宣告,類別的變數我們稱為實例,也是我們真正處理物件的地方。從另一個角度來說,類別類似一個模子,而實例是模子做出來的物品。一般而言,一個物件必須合乎下列條件:
物件必須有一個資料結構來存放資料
物件必須有狀態及行為
物件必須可以被識別
物件必須可以被創造及消滅
由上面所敘,我們可以總結Java語言中Class的功能:
class具有一個資料結構。
class有建構函數,用來建造物件。
class被視同為資料型態,每一個物件和一般資料一樣,能夠自然地被識別。
class有(成員)函數,可以建立物件行為。
class另外有存取等級的管制可以實現資訊隱藏的概念。
message 與 method
Message是物件之間用來溝通的主要工具,所以我們可以大略的把message看成是訊息的意思。另一個名詞method就是與資料一起,被包裝在物件的操作程序(類似於函數)。每個method都對應一個message,只要一種message被送到物件來,物件就會有相對的method動作。
message(or method)呼叫
在物件中,呼叫message的方法如下。
範例:
s1.setdata(1066);
s2.setdata(1776);
s1.showdata(); // member function calling
s2.showdata(); // member function calling
範例二:
// widget part as an object
import java.io.*;
class Part // specify an object
{
int modelnumber;
int partnumber;
float cost;
Part()
{}
void setpart(int mn, int pn, float c) // set data
{
modelnumber = mn;
partnumber = pn;
cost
您可能关注的文档
最近下载
- ISO-37001-2016--反贿赂管理体系要求及使用指南(英文版).pdf VIP
- 医疗器械风险管理YY0316-2016.pptx VIP
- 《猪生产与猪病防治》课件——保育猪饲养管理.pptx VIP
- 水文水资源软件:SWAT二次开发_(18).SWAT二次开发实战演练.docx VIP
- 高等教育数值分析教案__教案、学案.doc VIP
- 生产管理规范文件.docx VIP
- 2025入党积极分子发展对象培训考试题库100题含答案(完整版).docx VIP
- 国企党支部学习教育的总结评估报告.docx VIP
- 中医馆创业计划书模板.docx VIP
- 战场阵亡遗体处置方案最新.docx VIP
文档评论(0)