2016年10月5日 星期三

程式基礎筆記

#1_實例就是物件

實例變數就是物件變數也就是非靜態變數

實例(instance)是由 new 所產生的某個類別的實作,也稱為物件(object)。一個 class 可以生成多個實例,而且每個實例都擁有一份自己的實例變數。以下圖為例:class A 宣告了三個實例變數 x,y 與 z,而每個實例都為這三個實例變數配置了記憶體以儲存他們的值。
有圖解
http://wiki.plweb.org/Java/Object-Oriented_Programming_in_Java#.E4.BD.95.E8.AC.82.E5.AF.A6.E4.BE.8B.EF.BC.88Instance.EF.BC.89

#2_建構子

建構子(Constructor)是指和類別(Class)名稱相同的方法。當我們使用new建立新物件時,程式會自動執行建構子,所以它常被用來做物件參數初始化的動作。物件的建構子擁有下面三個特點:
  • 與類別名稱相同。
  • 沒有回傳值。
  • 支援方法的過載。
http://www.moke.tw/wordpress/computer/programming/395

#3_泛型&多型
泛型:泛型的出現是為了解決物件導向的一些問題,所謂物件導向是希望開發的物件可以有效的重複再利用,但是卡在型別的問題,不同的型別需要轉換才能通,但是如果有種物件可以不用管型別,只重視程式形式,這就是泛型。
舉例:
template<class T>T fun(T input1, T input2)
{
  return input1+input2;
}

int main()
{
  cout << fun(1, 3) << endl;                          // int type...
  cout << fun(45.16, 186.189) << endl;         // double type...

  return 0;
}

多型:Polymorphism(多型)。簡單來說多型只是想延後function binding的時間,等到執行時期才決定要呼叫哪一個function。如此,可使程式的執行不在於編譯時期決定,而延後到執行期間才動態決定呼叫何者。例如:編譯時期只定義動物有一個walk() function,而在執行期間若為獅子那就動態呼叫獅子此類別的walk() function;反之若為人那就動態呼叫人此類別的walk() function。


#4_語法糖&語法鹽
語法糖:這種語法對語言的功能並沒有影響,但是更方便程式設計師使用。語法糖讓程序更加簡潔,有更高的可讀性
語法鹽:和語法糖相反,有意使書寫代碼更加困難以避免人為疏失產生錯誤的語法


#5_局部變量or區域變數(Local variables)&全局變量or全域變數(Global Variables)
通常把定義在函數外的變量稱為全局變量;而在函數內聲明的變量稱為局部變量。
float x=36.5;//全域變數,可以在本源文件中使用
fun(int)
{}
void main()
{int x=1,y=2;//區域變數,只能在函式中使用
double w=x+y;
}

#6_什麼是傳值call by value、傳址call by address、傳參考call by reference

http://wp.mlab.tw/?p=176


2016年10月1日 星期六

Xcode & Swift 錯誤(碰壁)紀錄小筆記

其實也可以說是碰壁紀錄

紀錄

#1 ?? 2016.09.29
之前有次按到變成Generated Interface 模式,之後就不能打程式碼被鎖住,當初亂試,調回Original Source模式就能打字了