日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

趣味教程:从女娲造人谈类、属性、方法及实例

發布時間:2023/12/13 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 趣味教程:从女娲造人谈类、属性、方法及实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:相信大家都聽說過女媧造人的故事,不過細節可能不會太清楚,我現在略述如下,您可要仔細聽哦,這和我們今天要聊的主題有莫大的關系呀。

女媧是一個人身龍尾的女神。盤古開天辟地以后,也就在天地間到處游歷。她雖然是神,可是也會寂寞的,望著平靜的水面里自己美麗的倒影不勝唏噓。于是她便決定按照自己的形貌來捏泥人。女媧心靈手巧,不一會兒就捏好了好多的泥人。這些泥人幾乎和她一樣,只不過她給他們做了與兩手相配的雙腿,來代替龍的尾巴。女媧朝著那些小泥人吹口氣,那些小泥人便被灌注了活力,“活”了起來,變成了一群能直立行走、能言會語、聰明靈巧的小東西,女媧稱他們為“人”。女媧在其中一些人身上注入了陽氣——自然界一種好斗的雄性要素,于是他們就成了男人;而在另外一些人身上,她又注入了陰氣——自然界一種柔順的雌性素,于是她們便成了女人。 女媧想讓人們遍布廣闊的大地,但她累了,做得也太慢了。于是,她想出一條捷徑。她把一根繩子放進河底的淤泥里轉動著,直到繩的下端整個兒裹上一層土。接著,她提起繩子向地面上一揮,凡是有泥點降落的地方,那些泥點就變成了一個個小人。女媧就這樣創造了布滿大地的人們。

這個故事可謂是蘊涵了極深刻的程序語法規則,大家看完我下面的分析后,一定會相信故事的作者沒準是遠古時代的程序員呢!

<代碼看起來很長,是我加了詳細的注釋的緣故>

1、類:如果女媧屬于一個類的話,可以稱之為"神"。代碼表示為:
--神.as開始--

class 神{ //class :定義'類'的關鍵字,描述一組具有共性的對象的特征static var 類別:String="神";//static :定義'類變量'或'類方法'的關鍵字,它描述一組類的整體屬性或方法。在這里表示,所有的神的都可稱為"神"。static var 所屬:Object =神;//表示神歸誰管啦,中國遠古的神好象沒有什么附屬關系哦。public var 善惡:String;//public :定義'公開'屬性或方法的關鍵字,它描述類的可以供外部對象訪問的屬性或方法。private var __姓名:String;//private :定義'私有‘屬性或方法的關鍵字,它描述類的需要封裝的屬性或方法,//表現為它定義的變量或方法只可以被類或子類內部的方法訪問(調用).//下面會詳細說明用private的理由的.private var __形體:String;//在變量名字前加"__"僅標志它是具有獲取/設置方法的屬性.private var __性別:String;public function set 姓名(n:String):Void{//set:動作腳本 2.0中隱式設置類相關屬性的關鍵字.下面會詳細說明__姓名=n;//類內部的方法可以訪問私有屬性'__姓名'}public function get 姓名():String{//get:動作腳本 2.0中隱式獲取類相關屬性的關鍵字.下面會詳細說明var n:String="偉大的神"+__姓名;//類內部的方法可以訪問私有屬性'__姓名'return n;}public function set 形體(x:String):Void{__形體="神奇的"+x;}public function get 形體():String{return __形體;}public function set 性別(n:String):Void{if(n=="男"||n=="女"){__性別=n;}} public function get 性別():String{return __性別;}function 神(sh:String,n:String,x:String,s:String){//構造函數,是連接類和實例的紐帶,它接受外部設置的參數,//對即將生成的實例進行初始化.它的表現就是名稱與包含它的類的名稱相同.其實我真的認為...它可以比喻為'子宮'的..//sh:善惡,n:姓名,x:形體,s:性別善惡=sh;//為善惡屬性直接賦值。姓名=n;//調用'set 姓名'方法為'__姓名'屬性賦值。形體=x;//調用'set 形體'方法為'__形體'屬性賦值。性別=s;//調用'set 性別'方法為'__性別'屬性賦值,在賦值之前會先判斷s是否為'男'或'女'。//對賦值進行必要的控制,是隱式設置屬性的一個優勢。}public function 寂寞():Void{trace("\"自己好孤單啊,有個人陪陪我多好啊!\"");//為什么不去[維藝--Flash]論壇?呵呵,做個廣告啦!}public function 創造(o:String):Object {//o:創造的目標if(o=="人"){var 泥人=捏泥人();var 氣=["陽","陰"];var r=Math.floor(Math.random()*2);//得到一個隨即數字,或0或1var 隨即氣= 氣[r];var 人=吹口氣(泥人,隨即氣);//類內部的方法可以調用'私有'方法'吹口氣'命名(人,"人");//女媧稱他們為'人'...return 人;}//if ... 當然神還具備其它的創造本領,這里略~}public function 捏泥人():Object {trace("捏泥人...");var 泥人=new Object();泥人.形體="人身人腿";//據上面神話所述,女媧是'人身蛇尾'...trace("一個泥人制作完畢!");return 泥人;}public function 命名(o:Object,n:String){//o:待命名的對象,n:名稱o.類別=n;trace("一個人誕生了!");}private function 吹口氣(o:Object,s:String):Object{//o:泥人,s:氣//這個方法確實是神私有的方法啦,我一直都不理解的,如果能吹口氣吹出銀子來...trace("吹口氣...");//--泥人具有了以下本領--o.直立行走=function(){trace("打架摔交中...");}trace("泥人學會直立行走!");o.能言會語=function(){trace("談情說愛中...");}trace("泥人學會語言!");o.聰明靈巧=function(){trace("坑蒙拐騙中...");}trace("泥人學會思考!");//呵呵if(s=="陰"){//如果注入的是陰氣o.性別="女";}else if(s=="陽"){o.性別="男";}//else if 又陰又陽 then 人妖~~trace("泥人性別是"+o.性別+"!");trace("泥人具備了靈魂!");return o;} }

--神.as結束--

到這里我們的"造神運動"就告一階段了,該看看我們的神的威力啦!

--女媧造人.fla開始--

//在第一楨上寫代碼: var 女媧=new 神("善","女媧","人身蛇尾","女"); //new:生成實例的關鍵字,它先創建一個初始時匿名的新對象,再用構造函數設置新對象的特性, //最后返回新對象的內存地址。在這里新誕生的'神'的內存地址賦給了'女媧'變量。 trace(女媧.姓名+"是一位"+女媧.形體+女媧.性別+神.類別); //調用女媧的'get 姓名'方法,返回'偉大的神女媧'。對返回的屬性值進行必要的控制,是隱式獲取屬性的一個優勢。 //比如,你的老板叫張三,卻常被稱為'張總',這也是經過必要的控制之后得到的結果。 //'張三'這個名字只有他的自己人才使用哦!所以說生活中有很多事情也可用'私有屬性'來解釋的~ trace("她是"+女媧.善惡+神.類別); //直接返回女媧的善惡屬性值。 trace("一天,她覺得"); 女媧.寂寞(); trace("于是,她開始"); 女媧.創造("人");

--女媧造人.fla結束--

現在測試一下吧,看看會產生什么驚天動地的大事吧!

--測試影片開始--
偉大的神女媧是一位神奇的人身蛇尾女神
她是善神
一天,她覺得
"自己好孤單啊,有個人陪陪多好啊!"
于是,她開始
捏泥人...
一個泥人制作完畢!
吹口氣...
泥人學會直立行走!
泥人學會語言!
泥人學會思考!
泥人性別是男!
泥人具備了靈魂!
一個人誕生了!
--測試影片結束--

呵呵,到此為止,我們的女媧造人的故事就講述了一半了,接下來就該女媧如何用繩子甩泥點造人啦(這的確比一個一個手工捏要利索多了),也就是類的繼承。希望不會讓大家等太久哦:)




前言:在上篇中談到女媧不甘寂寞,用泥土捏出了一個個會走動、具靈氣的"人",可是忘了交代一下"人" 的才能到底如何。在女媧開始大批量造人之前先給我們"人"個舞臺,讓他展現一下自己的才能吧!

--女媧造人.fla 開始--

var 女媧:神=new 神("善","女媧","人身蛇尾","女"); trace(女媧.姓名+"是一位"+女媧.形體+女媧.性別+神.類別); trace("她是"+女媧.善惡+神.類別); trace("一天,她覺得"); 女媧.寂寞(); trace("于是,她開始"); var 原始人:Object=女媧.創造("人"); //將創造出來的"人"賦值給變量'原始人',以后就可以通過'原始人'訪問他的屬性與方法。 trace("----原始人開始展示自己的才能----"); trace("原始人是"+原始人.性別+原始人.類別); trace("原始人的形體是"+原始人.形體); trace("原始人會直立行走,現在他(她)在:"); 原始人.直立行走(); trace("原始人能言會語,現在他(她)在:"); 原始人.能言會語(); trace("原始人聰明靈巧,現在他(她)在:"); 原始人.聰明靈巧()

?

--女媧造人.fla 結束--

我們人的表現如何呢?現在測試一下:

--女媧造人.fla 測試開始--

偉大的神女媧是一位神奇的人身蛇尾女神
她是善神
一天,她覺得
"我好孤單啊,有個人陪陪我多好啊!"
于是,她開始
捏泥人...
一個泥人制作完畢!
吹口氣...
泥人學會直立行走!
泥人學會語言!
泥人學會思考!
泥人性別是女!
泥人具備了靈魂!
一個人誕生了!
----原始人開始展示自己的才能----
原始人是女人
原始人的形體是人身人腿
原始人會直立行走,現在他(她)在:
打架摔交中...
原始人能言會語,現在他(她)在:
談情說愛中...
原始人聰明靈巧,現在他(她)在:
坑蒙拐騙中...

--女媧造人.fla 測試結束--

看到測試結果,你的感受如何呢?這個這個嘛,還是'人之初,性本惡'吧?

廢話少說,言歸正傳。話說女媧想讓人們遍布廣闊的大地,但象她這樣一個一個捏制下去希望實在渺茫啊。而且我們也看到了,其實每個泥人的樣子雖然各不相同,但靈魂卻是相似的,都是女媧的一口氣使然。如果每個人都需要從女媧那里來那么一口,不把女媧累死也得元氣大傷吧!那么女媧該怎么辦呢?傳說里說女媧拿了根繩子甩啊甩的就造出了很多人,看來得從這根'繩'子著手了.

這根繩子如此不一般,我認為是女媧把造人的模版傾注其中的結果。傳說里又說,女媧是'按照自己的行貌'造的人,可以肯定'人'一定是從神那里繼承了不少的特性吧。

--人.as開始--

class 人 extends 神 { //extends:定義類與類之間繼承關系的關鍵字,子類對父類的特性可以保留或揚棄。static var 類別:String = "人";static var 所屬:Object = 神;//看到沒,人是歸神所管的哦static var 氣:Array = ["陽", "陰"];static function 設置性別():String {var 隨即氣 = 人.氣[Math.floor(Math.random()*2)];if (隨即氣 == "陰") {return "女";} else if (隨即氣 == "陽") {return "男";}}public function set 形體(x:String):Void {//畢竟人和神的形體有很大的不同,神的形體千變萬化,//人的形體卻大體是相似的,所以子類重寫了父類的 'set 形體()'方法.//x:形體的狀況,如是怎樣的身材等等if (x == undefined) {x = "平常";}//如果沒有提供'形體'的詳細描述,那么用默認值'平常'。__形體 = x+"人體";}public function get 形體():String{//這個方法有點奇怪,本來應該直接繼承就可以了,但卻不得不再寫一遍,原因不明。或者set 與 get 要配對出現?return __形體;}function 人(x) {//人的誕生無法和神相比啦,重寫構造函數//x:形體//與神相比,人的構造函數只有'形體'一項參數,因為人的善惡跟后來的成長過程有關,//性別由自然規則來定,姓名是后來由別人給命名的...只有身體是與天俱來的//善惡=undefined 這里寫出來,是提醒大家善惡現在其實是undefined的 //姓名=undefined 形體 = x;性別 = 人.設置性別();//調用類方法來初始化性別trace("人誕生了!");}//下面的是繼承來的方法public function 寂寞():Void {//寂寞者,人神皆然。不過'人'對'神'的寂寞有所拓展super.寂寞();//super:指向父類對象的關鍵字,因為'人'與神的寂寞有相同的地方,所以這里先調用'神'的‘寂寞’方法。trace("哪怕是陪我聊聊天也行哦!");//神會把'寂寞'轉化為'創造',人卻把'寂寞'轉化為'有聊'~~}public function 創造(o:Object):Object {//人是沒有神那么偉大的創造力...重寫'創造'方法if (o == "火") {var o = new Object();o.名稱 = "火";o.烤 = function(oo:Object) {trace(oo+"烤熟了!");};trace("發明鉆木取火!");return o;}//其他的創造能力...略}//public function 捏泥人()... 人和神的 ‘捏泥人’沒啥區別,完全繼承之public function 吹口氣(o:Object) {//由私有方法成為公有方法//唉,一般來說子類對父類的功能都是有所拓展或增強的,唯獨由神到人有點特別呀,//拓展的只是些皮毛無聊的小功能,象這‘吹口氣’的大本領就沒繼承來!要是吹口氣吹出銀子來...if (o == undefined) {//如果無東西可吹trace("哎,這覺睡得好長啊");//等于是打個哈欠吧} else if (o == " 蠟燭") {trace("蠟燭滅了");//吹吹蠟燭~} else if (o == this) {//this:表示對象自身的關鍵字。//如果吹的對象是自己trace("哪里哪里,我也是略懂一二...你有什么要請教的?");//唉,我也難免吹吹自己的~} else if (o instanceof 人.所屬) {//如果吹的對象是人類的主宰的話trace("爹親娘親沒有"+o.姓名+"親!");//得 ,這又是在拍了~}}//下面是人自己的方法public function 直立行走() {trace("打架摔交中...");}public function 能言會語() {trace("談情說愛中...");}public function 聰明靈巧() {trace("坑蒙拐騙中...");} }

//--人.as結束--

現在"造人運動"也告一段落了,讓我們看看收效如何吧:

--女媧造人.fla--
(在原代碼后附加)

var 遠古人=new 人("美麗的"); 遠古人.姓名="遠古人"; //為實例自己的姓名屬性賦值 遠古人.打獵=function(o:String):Void{trace("射殺一只"+o+"!"); } //為實例定義自己的方法 trace("----遠古人開始展示自己的才能----"); trace(遠古人.名字+"是"+遠古人.性別+人.類別); trace(遠古人.名字+"的形體是"+遠古人.形體); 遠古人.寂寞(); trace("遠古人會直立行走,現在他(她)在:"); 遠古人.直立行走(); trace("遠古人能言會語,現在他(她)在:"); 遠古人.能言會語(); trace("遠古人聰明靈巧,現在他(她)在:"); 遠古人.聰明靈巧(); 遠古人.捏泥人(); 遠古人.吹口氣(); 遠古人.吹口氣("蠟燭"); 遠古人.吹口氣(遠古人); 遠古人.吹口氣(女媧); 遠古人.打獵("鹿");


--女媧造人.fla 結束--

如果你想要看看這位遠古人的表現如何,不妨自己測試。到此為止,我們的故事就快講完了。女媧現在造人就非常簡單了,只需要"new 人()"就可以了,再不用捏個泥人吹口氣了。如果精神充沛的話就"new 人('健康的')",如果體力不支的話就"new 人('軟弱的')"。如果你了解Action 1.0語法的繼承機制的話,一定知道類中的實例方法是寫在類的"prototype"(即原型)上的,這樣可以實現由類創建的實例共享相同的方法。在我們剛才創建的類中,由"public"或"private"關鍵字修飾的方法其實也是寫在"prototype"上的。所以說,現在女媧不再需要在每個"人"身上都定義一遍"方法",也就是對每個人都"吹口氣"了。

轉載于:https://www.cnblogs.com/savageworld/archive/2006/08/11/474020.html

總結

以上是生活随笔為你收集整理的趣味教程:从女娲造人谈类、属性、方法及实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。