C語言程序設(shè)計(第二版)課件第12章 面向?qū)ο蠹癈++ C#簡介_第1頁
C語言程序設(shè)計(第二版)課件第12章 面向?qū)ο蠹癈++ C#簡介_第2頁
C語言程序設(shè)計(第二版)課件第12章 面向?qū)ο蠹癈++ C#簡介_第3頁
C語言程序設(shè)計(第二版)課件第12章 面向?qū)ο蠹癈++ C#簡介_第4頁
C語言程序設(shè)計(第二版)課件第12章 面向?qū)ο蠹癈++ C#簡介_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

了解面向?qū)ο蟪绦蛟O(shè)計方法的基本概念了解C++語言的特點了解C#語言的特點12.1面向?qū)ο蟪绦蛟O(shè)計方法12.1.1概述面向?qū)ο蟪绦蛟O(shè)計(Object-OrientedProgramming,OOP)是20世紀(jì)80年代發(fā)展起來的一種程序設(shè)計方法。它通過模擬現(xiàn)實世界中的事物和關(guān)系,利用抽象、分類、歸納等方法來構(gòu)造軟件系統(tǒng)。結(jié)構(gòu)化程序設(shè)計的一些缺點

:數(shù)據(jù)和算法的一致性差。程序的可重用性差。12.1.2面向?qū)ο蟪绦蛟O(shè)計的基本概念1. 對象 實體(entity)是指客觀存在的事物,而對象(object)是指現(xiàn)實世界中無所不在的各式各樣的實體。每一個實體都有一些特定的屬性和行為,在面向?qū)ο蟮某绦蛟O(shè)計中將該實體的屬性(數(shù)據(jù))和行為(操作數(shù)據(jù)的函數(shù))封裝在一個整體里;每一個實體都有一個所屬的類,在該類中還有許多其他的不同實體,因此在建立對象時,必須給對象賦予唯一的標(biāo)識符,用來標(biāo)識該對象。12.1.2面向?qū)ο蟪绦蛟O(shè)計的基本概念2. 類 類是對一組對象共同具有的屬性和行為進(jìn)行的抽象,它提供了一個具有特定功能的模塊和一種代碼共享的手段。 類將數(shù)據(jù)的結(jié)構(gòu)和對數(shù)據(jù)的操作封裝在一起,實現(xiàn)了類的外部特性和類的內(nèi)部實現(xiàn)相隔離。類的內(nèi)部實現(xiàn)細(xì)節(jié)對用戶來說是隱藏的,用戶只需了解類的外部特性,而不必關(guān)心內(nèi)部實現(xiàn)的具體細(xì)節(jié)。 類具有層次性,即一個類的上層可以有父類,下層可以有子類,一個類繼承其父類的所有特性,且這種繼承具有傳遞性。12.1.2面向?qū)ο蟪绦蛟O(shè)計的基本概念

類和對象是面向?qū)ο蟪绦蛟O(shè)計的基礎(chǔ),是實現(xiàn)數(shù)據(jù)抽象和封裝的工具。類是對一組對象的抽象,而對象則是類的一個實例。比如,我們將顏色不同、品種不同、會“汪汪”叫的四足動物稱為狗,即狗是一個類,而馬戲團(tuán)的那只白色的斑點狗則就是狗類的一個對象。在程序中,從語法上來看,類和對象的關(guān)系相當(dāng)于數(shù)據(jù)類型和變量的關(guān)系。12.1.2面向?qū)ο蟪绦蛟O(shè)計的基本概念3. 消息 消息是向某對象請求服務(wù)的一種表達(dá)方式,如果用戶或其他對象向該對象提出服務(wù)請求,便可以稱為向該對象發(fā)送消息。在面向?qū)ο蟮某绦蛑?,程序?zhí)行是靠對象之間傳遞消息來完成的。消息實現(xiàn)了對象與外界、對象與其他對象之間的聯(lián)系,消息傳遞一般由如下部分組成: 接收消息的對象,又被稱為目標(biāo)對象。 請求對象的方法。 一個或多個參數(shù)。方法 是一個類似于過程的實體,是對某個對象接受了某一消息后所采取的一系列操作的描述。12.1.3面向?qū)ο蟪绦蛟O(shè)計的特點1. 封裝性 封裝性是指將數(shù)據(jù)和算法捆綁成一個整體,這個整體就是對象,描述對象的數(shù)據(jù)被封裝在其內(nèi)部。如果需要存取數(shù)據(jù),可以通過對象提供的算法來進(jìn)行操作,而無須知道內(nèi)部的數(shù)據(jù)是如何表示和存儲的。2. 繼承性 繼承性是指一種事物保留了另一種事物的全部特征,并且具有自身的獨有特征。3. 多態(tài)性 多態(tài)性是指當(dāng)多種事物繼承自一種事物時,同一種操作在它們之間表現(xiàn)出不同的行為。12.2C++概述12.2.1C++語言的發(fā)展12.2.2C++語言的特點C++是C語言的超集C++是一種面向?qū)ο蟮某绦蛟O(shè)計語言抽象數(shù)據(jù)類型。封裝和信息隱藏。以繼承和派生方式實現(xiàn)程序的重用。以運算符重載和虛函數(shù)來實現(xiàn)多態(tài)性。以模板來實現(xiàn)類型的參數(shù)化。C++具有很好的通用性和可移植性C++具有豐富的數(shù)據(jù)類型和運算符,并提供了功能強(qiáng)大的函數(shù)庫12.2.3幾個簡單的C++程序【例12-1】一個最簡單的C++程序。#include<iostream.h>intmain(){cout<<"ThisisasimpleC++program.\n";return0;}【例12-2】在屏幕上輸出一個由*號組成的三角形。#include<iostream.h>voiddrow(intnum);//函數(shù)原型聲明voidmain(){intnum=5; //定義并初始化變量

drow(num); //函數(shù)的調(diào)用}voiddrow(intnum) //函數(shù)的定義{for(inti=0;i<num;i++) //循環(huán)語句

{for(intj=0;j<=i;j++)cout<<"*";cout<<endl;}}

【例12-3】用類的概念改寫上例。#include<iostream.h>classDrowArroy //定義一個類{public:voidDrow(intnum); //聲明類的公有成員函數(shù)};voidDrowArroy::Drow(intnum)//成員函數(shù)的實現(xiàn){for(inti=0;i<num;i++) //循環(huán)語句

{for(intj=0;j<=i;j++)cout<<"*";cout<<endl;}}voidmain(){intnum=5;//定義并初始化變量

DrowArroymyDrow;//定義類的一個對象

myDrow.Drow(num);//調(diào)用此對象的成員函數(shù)}12.2.4C++程序的基本組成1.預(yù)處理命令

C++中提供了3類預(yù)處理命令:宏定義命令、文件包含命令和條件編譯命令。每一個以符號“#”開頭的行都是預(yù)處理命令。2.語句語句是組成程序的基本單元,它可以是用來判斷的條件語句或反復(fù)執(zhí)行的循環(huán)語句等。它們是C++的重要部分之一。3.函數(shù)一個C++程序是有若干函數(shù)組成的。同C語言類似。4.變量對象大多數(shù)程序離不開變量和對象。5.輸入和輸出

6.注釋

數(shù)據(jù)類型12.2.5數(shù)據(jù)的輸入和輸出1.輸出流cout【格式】cout<<表達(dá)式1<<表達(dá)式2<<……<<表達(dá)式n;【功能】將各表達(dá)式的值按系統(tǒng)自動決定的格式順序輸出到顯示器上?!菊f明】在C++中將數(shù)據(jù)送到輸出流稱為“插入”或“放到”。<<在這里不作為位運算的左移運算符,而常稱為“插入運算符”;各表達(dá)式的類型可以是任意的;如:floata=3.45;intb=5;charc='A';cout<<"a="<<a<<","<<"b="<<b

<<","<<"c=“<<c<<endl;1.輸出流cout可以在一個輸出語句中使用多個運算符<<將多個輸出項插入到輸出流cout中,<<運算符的結(jié)合方向為自左向右,但要注意每輸出一項要用一個<<符號,不能寫成cout<<a,b,c,"A";形式。可以使用表12.2中的格式控制符控制數(shù)據(jù)的輸出格式(其中使用setw()、setfill()、setprecision()應(yīng)加入預(yù)處理命令:#include<iomainip.h>);1.輸出流cout2.輸入流cin【格式】cin>>變量1>>變量2>>……>>變量n;【功能】接收從鍵盤輸入的數(shù)據(jù)并依次送入各變量中?!菊f明】在C++中,這種輸入操作稱為“提取”或“得到”。>>常稱為“提取運算符”。各變量可以是任意數(shù)據(jù)類型,輸入時各個數(shù)據(jù)之間用空格、Tab鍵或回車鍵分隔。例如:

inta;floatb;cin>>a>>b;

//輸入一個整數(shù)和一個實數(shù)。注意不要寫成cin>>a,b;可以從鍵盤輸入:2032.45(數(shù)據(jù)間以空格分隔)a和b分別獲得值20和32.45?!纠?2-4】cin與cout一起使用。#include<iostream.h>main(){cout<<"pleaseenteryournameandage:"<<endl;charname[10];intage;cin>>name;cin>>age;cout<<"yournameis"<<name<<endl;cout<<"yourageis"<<age<<endl;}12.3C#語言12.3.1概述

C#(讀:csharp)是微軟.NET開發(fā)人員的首選語言,是21世紀(jì)最重要的編程語言之一。

C#繼承了多種程序設(shè)計語言的精髓,它直接繼承了當(dāng)今最成功的兩種計算機(jī)語言——C和C++語言的功能,并且與Java有緊密聯(lián)系。

1. Internet和Java的出現(xiàn)

Java是一種結(jié)構(gòu)化的面向?qū)ο笳Z言,它繼承了C++的語法和設(shè)計理念。

Java通過將程序員的源代碼轉(zhuǎn)換成為一種叫做“字節(jié)碼”的中間代碼,從而使得程序可移植。Java源自C和C++語言,其語法基于C語言,而面向?qū)ο竽P蛣t基于C++語言。12.3C#語言2. C#的創(chuàng)建 為滿足種種需要,微軟公司開發(fā)了C#語言,它是微軟在20世紀(jì)90年代后期開發(fā)的,也是整個.NET戰(zhàn)略的一部分。2000年中期發(fā)布了C#的第一個版本,其首席設(shè)計師是AndersHejlsberg。Hejlsberg是當(dāng)今世界上處于領(lǐng)導(dǎo)地位的計算機(jī)語言專家之一,他取得了許多出色的成就,例如,20世紀(jì)80年代,極其成功且極具影響力的TurboPascal軟件因其語法的精簡實現(xiàn)而成為了以后所有編譯器的標(biāo)準(zhǔn),該軟件的最初創(chuàng)建者就是Hejlsberg。12.3C#語言 C#與C、C++和Java直接相關(guān)。C#的族譜如圖12-2所示,C#的“祖父”是C,從C那里繼承了語法、許多關(guān)鍵字和運算符。接下來,C#基于并改進(jìn)了C++所定義的對象模型。12.3C#語言 C#和Java之間的關(guān)系稍顯復(fù)雜。如前面所說,Java也是從C和C++衍生而來,也繼承了C/C++的語法和對象模型。類似于Java,C#被設(shè)計用來產(chǎn)生可移植的代碼。但是C#不是衍生于Java,C#和Java更像堂兄弟,有共同的祖先,但在許多重要方面也有所不同。

C#包含許多新增加的功能,其中最重要的功能體現(xiàn)在其對軟件組件的內(nèi)置支持。事實上,C#已經(jīng)被特征化為面向組件的語言,因為它包含對面向軟件組件編程的完整支持。例如,C#包含了支持組件創(chuàng)建的功能,如屬性、方法和事件。然而,C#程序能夠在安全的混合語言環(huán)境中運行,這一點才是它最重要的面向組件的功能。12.3C#語言3. C#的發(fā)展1.0——隨.NET框架1.0和VisualStudio.NET2002于2002年2月13日發(fā)布。1.5——隨.NET框架1.1和VisualStudio.NET2003于2003年5月20日發(fā)布。2.0——隨.NET框架2.0和VisualStudio.NET2005于2005年11月7日發(fā)布。3.0——隨.NET框架3.0和VisualStudio.NET2008于2007年11月16日發(fā)布。4.0——隨.NET框架4.0和VisualStudio.NET2010于2010年4月12日發(fā)布。12.3C#語言4. C#的特點① 指針② 托管③ 多重繼承④ 轉(zhuǎn)換⑤ 數(shù)組聲明⑥ 枚舉泛型……12.3C#語言12.3.2C#如何與.NETFramework相關(guān)

.NETFramework定義了一個支持高度分布的、基于組件的應(yīng)用程序開發(fā)和執(zhí)行環(huán)境。它使得不同的計算機(jī)語言能夠協(xié)同工作,從而給Windows平臺提供了安全的、可移植的、通用的編程模型。和C#相關(guān)的是,.NETFramework定義了兩個非常重要的實體。 第一個是公共語言運行庫(CommonLanguageRuntime,CLR),它是管理程序執(zhí)行的系統(tǒng)。公共語言運行庫有諸多功能,作為.NETFramework的一部分,它被用來確保程序的可移植性、支持混合語言編程,并提供安全的執(zhí)行。 第二個實體是.NET類庫,該庫讓應(yīng)用程序能夠訪問運行時環(huán)境。

本章主要介紹C++語言的基本知識與基本概念,通過本章的學(xué)習(xí)使大家對C++有一個直觀的了解,并能借助它實現(xiàn)一個簡單程序的編輯、編譯、鏈接、運行和調(diào)試。

C++是以C語言為基礎(chǔ)發(fā)展起來的一種高級程序設(shè)計語言。C++語言的一個重要特點是它對面向程序設(shè)計提供了完整的支持。面向?qū)ο蟪绦蛟O(shè)計克服了結(jié)構(gòu)化程序設(shè)計中數(shù)據(jù)和算法相分離的缺點。封裝性、繼承性和多態(tài)性是面向?qū)ο笏枷氲闹饕卣?。本章最后簡單介紹了

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論