A. 純C語言實現,泛型數組(靜態數組的方式),關鍵是在分配內存時候,如何傳遞類型參數。(可惜我沒有分)
不要分,盡管討論!在32位機里指針都是4字搜鬧仿節。世纖但為了書寫標准化和移植彎此,還是用sizeof(ptype)*n作為malloc的參數為好。其中n是需要分配多少個ptype型指針的個數。
B. 靜態方法的方法使用
靜態方法與靜態變數一樣,屬於類本身,而不屬於那個類的一個對象。調用一個被定義為static的方法,可以通過在它前面加上這個類的名稱,也可以像調用非靜態方法一樣通過類對象調用。
實例方法必須通過類的實例來使用。實例方法可以使用類的非靜態成員,也可以使用類的靜態成員。
類的靜態方法,靜態變數是在類裝載的時候裝載的。但是要特別注意,類的靜態變數是該類的對象所共有的,即是所有對象共享變數。所以建議盡量少用靜態變數。盡量在靜態方法中使用內部變數。 其中static關鍵字即表示靜態的。聲明靜態方法的語法如下:
<訪問修飾符>static返回類型 方法名(參數列表)
{//方法體} 靜態方法與實例方法唯一不同的,就是靜態方法在返回類型前加static關鍵字。靜態方法的調用有兩種途徑:
(1)通過類的實例對象去調用
調用格式為: 對象名.方法名
(2) 通過類名直接調用
調用格式為: 類名::方法名 我們在使用時要注意:
靜態方法只能訪問類的靜態成員,不能訪問類的非靜態成員;
非靜態方法可以訪問類的靜態成員,也可以訪問類的非靜態成員;
靜態方法既可以用實例來調用,也可以用類名來調用。 #include<iostream>using namespace std;
class CStaticTest{public:CStaticTest(int a){this->a = a;}~CStaticTest(){}
static int add(CStaticTest& c1, CStaticTest& c2){return c1.a + c2.a;}
private:int a;};
int main(){CStaticTest tmp1(1);CStaticTest tmp2(2);int sum1 = tmp1.add(tmp1, tmp2);int sum2 = CStaticTest::add(tmp1, tmp2);
cout << sum1 << endl;cout << sum2 << endl;return 0;} 1. 有靜態屬性的類,一般會定義靜態方法。
2. 沒有屬性的類,一般會定義靜態方法,這樣在使用時,通過類名::方法名即可調用,
而不用先定義對象,再調用,這樣可以省去一行代碼。
C. 怎麼調用靜態方法
靜態方法不能訪問非靜態的實例變數和實例方法。實例方法可以訪問靜態成員和非靜態成員。
1在本來中直接調用靜態方法
2可以通過類名來調用該類的靜態方法
3通過實例調用靜態方法
// 外部類,不能是靜態的
public class OuterClass {
// 靜態方法,又稱為類方法,屬於Test類
public static void staticFun() {
}
// 非靜態方法,又稱為實例方法,屬於Test類的具體實例
public void nonStaticFun() {
}
// 靜態內部類,靜態類只能是內部類
public static class StaticInnerClass {
// 靜態方法,屬於StaticInnerClass類
public static void staticFun() {
}
// 非靜態方法,屬於StaticInnerClass類的實例
public void nonStaticFun() {
}
}
// 非靜態內部類,不能有靜態方法
public class NonStaticInnerClass {
// 非靜態方法,屬於NonStaticInnerClass的實例
public void nonStaticFun() {
}
}
// 測試代碼如下:
public static void main(String[] args) {
// 對於靜態方法,使用類直接訪問
OuterClass.staticFun();
StaticInnerClass.staticFun();
// 對於非靜態方法,需要使用類的實例訪問
new OuterClass().nonStaticFun();
new StaticInnerClass().nonStaticFun();
// 對於非靜態內部類,必須創建外部類後才能使用
OuterClass outerClass = new OuterClass();
NonStaticInnerClass nonStaticInnerClass = outerClass.new NonStaticInnerClass();
nonStaticInnerClass.nonStaticFun();
}
}
D. 靜態方法怎麼調用
先在eclipse中創建一個Java工程文件。並在src下創建demo包,在demo包下創建類DemoClass。創建後的工程目錄如圖。
02
接下來在DemoClass類中添加一個靜態屬性和靜態方法。被static修飾的屬性或方法就是靜態的。
03
對於靜態方法的調用,可以使用調用非靜態方法的方式去調用,即創建一個類的對象,然後再調用靜態方法,具體代碼如下圖。
04
編輯好代碼後,通過java應用程序的方式運行DemoClass.java文件,運行結果如圖2,說明成功調用了靜態方法。
05
不過,上面調用靜態方法的方式是不推薦的。如果使用上面的方式調用靜態方法,在eclipse中,你可以看到下圖的警告,大概的意思是要你使用正確的調用靜態方法的方式去調用該方法。
06
對於靜態方法,正確調用的方式是直接通過類名來調用的。用調用例子中的staticFunction為例,正確調用該方法的代碼為
DemoClass.staticFunction。當用類來調用靜態方法時,可以看到eclipse就不報警告了。
07
再次運行該文件,運行結果和剛剛一樣,說明也成功調用了靜態方法。
08
多說一句,對於靜態屬性的調用,也是用類名+點+靜態屬性的方式來調用的,正常都不會先創建一個對象,然後再通過對象來調用靜態屬性。
E. csharp如何定義靜態方法
方法:
1、首先在VS2019軟體中,打開一個C#控制台應用項目。
2、在C#項目中,打開自動創建型坦的Program.cs源文件。
3、在Program類的類體中,使用「publicstatic」關鍵字聲明一個GetMsg()靜態方法。
4、在Main()主函數中,插入語句:「GetMsg();」,調用聲明的靜態方法。
5、在VS2019軟體上方菜單欄中,依次點蔽慧擊「生成>>開始執行(不調試)」選項,編譯並運行C#程序。
6、程序運行宏租答完畢後,在控制台窗口中可以看到已經成功地在類中聲明一個靜態方法。
F. C# 泛型方法中,如何調用 類 參數中的 靜態方法
很明顯,你的函數要做的侍模叢是一個把弱類型的DataTable映射到強類型List<T>的ORM功能,但GetEntityByDataRow這個映射函數根本不應該定義到T中,你可以單獨寫一個靜老櫻態類,裡面使用反射技術,完成反射就可以碼段了。
G. c++怎樣調用類的靜態方法
1、靜態數據成員在定義或說明時前面加關殲橋鍵字static。//靜態變數的定義
2、靜態成員初始化辯帆與一般數據成員初始化不同。靜態數據氏灶猛成員初始化的格式如下:
<數據類型><類名>::<靜態數據成員名>=<值> //靜態變數的初始化
H. 靜態泛型方法
普通的方法是通過類的告滲孝實例來調用的,創建實例的過程調用了構造方法,襪稿也就是說對象已經知道這個時候類上面定義的<喊態T>的具體類型了;
而靜態方法不需要對象實例來調用,所以也就不知道<T>的具體類型,虛擬機不允許這種情況發生,所以編譯的時候就報錯了。
<K>放在static後面,你可以理解為既然靜態方法不知道Pair裡面的具體類型,你就手動的告訴它具體的類型
I. 如何調用內部類中的靜態方法
一般來說,外部類調用內部類的方法分為以下幾種情況:
1.使用static可以聲明一個內部類, 可以直接在外部調用
// 定義外部類
class Outer
{
// 定義外部類的私有屬性
private static String info = "hello world";
// 使用static定義內部類為外部類
static class Inner
{
// 定義內部類的方法
public void print()
{
// 直接訪問外部類的私有屬性
System.out.println(info);
}
};
// 定義外部類的方法
public void fun()
{
// 通過內部類的實例化對象調用方法
new Inner().print();
}
};
public class InnerClassDemo03
{
public static void main(String args[])
{
// 調用外部類的fun()方法
new Outer.Inner().print() ;
}
};
2.不使用statc聲明一個內部類 ,使外部調用
//定義外部類
class Outer
{
//定義外部類的私有屬性
private String info = "hello world";
//定義內部類
class Inner
{
//定義內部類的方法
public void print()
{
//直接訪問外部類的私有屬性
System.out.println(info);
}
};
//定義外部類的方法
public void fun()
{
//通過內部類的實例化對象調用方法
new Inner().print();
}
};
J. c# 在動態類中如何調用靜態方法
要調用其它類,有兩種情況:
1)如果其它類的方法是實例物正方法,就要先new 類再調用。
2)如果其它類的方法是靜態方法,就可以直接調用。
舉個例子:
public class A
{
//實例方法
public void Method1(){//..}
//靜態方法
public static Method2(){//..}
}
要在類B中調用上面2個不同類型方法,則使用方法慎螞並如下:
調用實例方法:
A a = new A();
a.Method1();
調用靜態方法:
A.Method2();
---------------------------------------------
你寬跡是想獲取sum後的值吧?
那參數類型就要改了:
public class A
{
public static int a = 0;
public static int sum(int n)
{ // 定義了一個靜態的方法sum.
return a = a + n;
}
}
public class Test {
public void test()
{
int result = A.sum(5);
}
}