英文長得很像,常常不小心搞混
Overloading
多載,在相同類別中,定義名稱相同,但引數個數不同或引數型態不同的函式
Overriding
覆寫,子類別繼承父類別,但是改寫父類別的方法,方法的名稱、引數和型態都必須相同
##ShowAll##
2010年6月28日 星期一
2010年2月6日 星期六
C/C++筆記-inline 將函式直接放到主程式
當程式碼很小時,在函式宣告加入inline的特性
編譯器會將函式直接放到主程式,而不會使用呼叫的方式
可加快速度,但會多占用記憶體
在類別中宣告的函式會自動加入inline
##ShowAll##
編譯器會將函式直接放到主程式,而不會使用呼叫的方式
可加快速度,但會多占用記憶體
在類別中宣告的函式會自動加入inline
//inline用在函式程式碼少,執行效率較高
inline int square(int value)
{
return(value*value)
}
##ShowAll##
2009年11月13日 星期五
JAVA筆記-vararg變長參數,利用省略號傳多個參數
利用省略號...傳多個參數,也是把參數自動轉成陣列
public int calc(int...c){
int sum = 0;
for(int i:c)
sum+=i;
return sum ;
}
/*使用時可傳多個參數*/
int a = new calc(1,2);
int b = new calc(1,2,3,4);
int c = new calc(a,b);
##ShowAll##
JAVA筆記-關於static成員
static只能用在類別裡,
不能使用在方法之內,
方法內也不能再定義方法
類別內,static不可呼叫non-static,只可呼叫static,
non-static則都可,
因static不需要被建立就可執行,
亦即static成員中根本沒有隱含的this參考指標指向物件,
但non-static卻未被建立,必須先new出來才可用
不能使用在方法之內,
方法內也不能再定義方法
類別內,static不可呼叫non-static,只可呼叫static,
non-static則都可,
因static不需要被建立就可執行,
亦即static成員中根本沒有隱含的this參考指標指向物件,
但non-static卻未被建立,必須先new出來才可用
public class Test {
void a() {
b(); //正確
d(); //正確
}
void b() {}
static void c() {
b(); //錯誤,不可直接呼叫b()
d(); //正確,可直接呼叫d()
}
static void d(){
new Test().b(); //正確,可直接呼叫b()
}
}
2009年9月25日 星期五
JAVA筆記-for-each多維陣列輸出
##ShowAll##
String[][] exams = {{"SCJP","SCWCD","SCMAD"},{"MCSD","MCAD","MCDBA"}};
for(String[] ex : exams)
{
for(String e : ex)
{
System.out.print(e + ", ");
}
}
JAVA筆記-label函式標籤
##ShowAll##
//有點像goto,但此方法似乎不會破壞程式結構
OuterLoop:
for( ; ; )
{
InnerLoop:
for( ; ; )
{
continue OuterLoop; //跳到OuterLoop標籤的函式
break OuterLoop; //跳出OuterLoop標籤的函式
}
}
JAVA筆記-final關鍵字使用
用final修飾過的類別(class)不能被繼承
函式(method)不能被重載,在C++加上const的函式意指回傳值不能被改變
變數不能被更改,意指常數,等於一般C++的const變數
在JAVA內,通常定義常數方法是static final PI = 3.1412;
函式(method)不能被重載,在C++加上const的函式意指回傳值不能被改變
變數不能被更改,意指常數,等於一般C++的const變數
在JAVA內,通常定義常數方法是static final PI = 3.1412;
2009年9月24日 星期四
C/C++筆記-函式預設參數
void draw(const int width, const int height, double scale=1.0);
...
//---> 以下兩呼叫函式是相等的
draw(3, 5, 1.0); //採用尺度比例
draw(3, 5,); //採用預設比例
##ShowAll##
2009年9月23日 星期三
C/C++筆記-const參數與函式
//i1、i2在函式中是const變數,不能改變值
const int& min(const int& i1, const int& i2)
{
if(i1 < i2)
return (i1);
return (i2);
}
int main()
{
min(1+2, 3+4);
return 0;
}
/*
* const的函式意義是指,若函式是傳回參考指標變數,
* 則該變數傳回後不能直接變更回傳值
* min(1+2,3+4)=0;由於是const函式,傳回值不能作改變
*/
##ShowAll##
C/C++筆記-將變數傳遞進參考指標函式
//好處是傳一般變數即可
void inc_counter(int& counter)
{
++counter;
}
int main()
{
int a_count = 0;
inc_counter(a_count);
std::cout << a_count << '\n' ; //傳回值+1
return 0;
}
/* 這種作法似乎不能用在C語言 */
##ShowAll##
2009年8月15日 星期六
C/C++筆記-函數的指標
函數也在記憶體中,所以指標也可以指向函數
int add(int,int);
int add(int,int);
int main(void)
{
int ans, (*p)(int x, int y); //宣告函數指標p
p = add; //將p指向函數add
ans = (*p)(3,4) //間接呼叫add函數
printf("%d",ans);
}
void add(int x,int y)
{
returb x+y;
}
##ShowAll##
C/C++筆記-將指標傳遞進函式
void func(int*,int);
int main(void)
{
int x=0,*p;
p = &x;
func(p,3); //Call-by-Reference
printf("x = %d",x);
}
void func(int *p,int y)
{
*p = y;
}
##ShowAll##
C/C++言筆記-將陣列傳遞進函式
void func(int a[])
{
int temp = a[1];
}
int main(void)
{
int a[2]={3,6};
func(a);
}
/*
* 若是多維陣列,第一個陣列要給予數字才能索引
* int a[10][10]; 合法
* int a[10][]; 合法
* int a[][]; 不合法
*/
##ShowAll##
訂閱:
文章
(
Atom
)