java创建对象过七夕,想 new 个对象过七夕,她却抛了异常
原標(biāo)題:想 new 個(gè)對象過七夕,她卻拋了異常
關(guān)注 “”
導(dǎo)讀:單身之痛......
作者 | 軒轅之風(fēng)
來源 | 編程技術(shù)宇宙(ID:xuanyuancoding)
七夕又到了,單身汪們太難了,每年不僅要經(jīng)歷雙十一,要經(jīng)歷2.14,還要經(jīng)歷七夕節(jié),真是古今中外都不肯放過我們啊!
不過對于咱們程序員來說,這都不是問題!只要你不是C語言,想要對象還不簡單?new 一個(gè)不就得了!
對象的類型
首先,new之前,得先定義對象的類型,就叫 GirlFriend 吧,繼承自基類Girl!
接下來要思考,這個(gè) GirlFriend 該有哪些方法呢?
首先得要長得漂亮吧:
boolisBeatuiful;
其次,得做的一手好飯吧:
Food cook;
嗯,要溫柔一點(diǎn),會(huì)撒嬌:
booltender;
不過也不能太粘著我,還是要去工作才行:
voidwork;
差點(diǎn)忘了,最重要的一點(diǎn),要愛我,心里只能有我一個(gè):
voidloveMe;
好了,就先想到這些方法吧。
要全心全意對待女朋友,還得要允許她訪問你的空間,C++程序員們記得把女朋友設(shè)置為友元:
friendclassGirlFriend;
和對象通信
接下來,要怎么和女朋友通信呢?
用個(gè)消息隊(duì)列?嗯,不行,處理不及時(shí)的話分分鐘要出事。
算了,就一個(gè)女朋友,還考慮什么高并發(fā)啊?就用個(gè)簡單的回調(diào)吧!
voidonMessage(Message msg);
Message 要考慮的情況有點(diǎn)多:
enumMessage {
MSG_IMissYou, // 我想你了
MSG_WhatAreYouDoing, // 你在干嘛
MSG_GoShopping, // 陪我逛街
MSG_IFeelUncomfortable, // 我不舒服
MSG_IAmAngry, // 我生氣了
······
}
得要小心翼翼的處理這些消息,否則,嘿嘿,你懂得~
switch(msg) {
caseMSG_IMissYou:
say( "miss you too");
break;
caseMSG_WhatAreYouDoing:
say( "I'm coding...");
break;
caseMSG_GoShopping:
takeMoney;
break;
caseMSG_IFeelUncomfortable:
say( "多喝熱水");
break;
caseMSG_IAmAngry:
// 這個(gè)我也不知道,自己發(fā)揮吧
}
準(zhǔn)備工作做得差不多了,現(xiàn)在可以來new了!
new一個(gè)
Java同學(xué)要注意,new出來的對象引用要抓牢了,要是不小心松了手,就要被垃圾回收掉了~
// Java
GirlFriend gf = newGirlFriend;
如果是一個(gè)C++程序員,new了之后還得要delete。不過,怎么能對女朋友進(jìn)行delete呢,你肯定不想發(fā)生這種事情吧?所以用智能指針shared_ptr吧!
不過要注意你們別循環(huán)引用,不然誰也走不了。就像生活中兩個(gè)人吵架總得有個(gè)人先讓步,不然就沒完沒了了~
// C++
shared_ptr gf( newGirlFriend);
為了展現(xiàn)你的專一性,只愛她一個(gè),得加上 final 和 const 表示一下吧:
// Java
final GirlFriend gf = newGirlFriend;
// C++
constshared_ptr gf( newGirlFriend);
運(yùn)行一下
寫好了,咱們來運(yùn)行一下~
哦豁!GirlFriend 的構(gòu)造函數(shù)拋出了異常!
別急,來看看錯(cuò)誤提示:
error: no matchGirlFriend found
原來是沒有找到符合要求的女朋友!
別慌,咱們降低一點(diǎn)條件,把有工作這一項(xiàng)拿掉再試試:
error: no matchGirlFriend found
額,還是不行,還得繼續(xù)降低要求,再把溫柔去掉吧,漂亮、會(huì)做飯、愛我難道還不夠嗎?
error: no matchGirlFriend found
好吧,是時(shí)候做出真正的抉擇了,忍痛去掉會(huì)做飯!再試一次!
error: no matchGirlFriend found
怎么辦?只剩下漂亮和愛我了!我還不信這個(gè)邪了,愛我就好了,漂不漂亮的不重要。再來!
error: no matchGirlFriend found
此刻已經(jīng)心如死灰,有個(gè)對象差不多湊活吧,管她愛不愛我,這是我最后的倔強(qiáng)。
error: no matchGirlFriend found
欺人太甚了,我要來排查一下基類 Girl 的源碼,到底出了什么問題?
突然我在Girl的構(gòu)造方法里看到了一行:
assert(job != "程序員");
這可難不倒我們程序員,我決定( )
猜猜我做了啥,留言區(qū)歡迎開腦洞!
分享轉(zhuǎn)發(fā)~早日脫單!
責(zé)任編輯:
總結(jié)
以上是生活随笔為你收集整理的java创建对象过七夕,想 new 个对象过七夕,她却抛了异常的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab 反复激活无效——许可证到期
- 下一篇: 珠宝条码打印扫描解决方案