導航:首頁 > 方法技巧 > 如何識別定義方法或屬性

如何識別定義方法或屬性

發布時間:2022-04-30 21:30:12

❶ C#中如何辨別屬性和方法怎麼樣判斷

屬性就相當於變數,只不過它在CLASS中,而class在Namespace中的,而方法就相當於函數。其中屬性是沒有括弧的,在類中的變數就可以認為是簡單的屬性,只不過C#不允許這樣稱呼,由property{ }定義的才是屬性,而 其它的就是變數。為了適合OOP思想,在C#及Java中把函數稱作方法

❷ java 怎麼定義屬性

定義屬性的語法格式如下:
[修飾符] 屬性類型 屬性名 [=默認值]

屬性語法格式的詳細說明如下:
1、修飾符:修飾符可以省略,也可以是public、protected、private、static、final,其中public、protected、private三個最多隻能出現其中之一,可以與static、final組合起來修飾屬性。
2、屬性類型:屬性類型可以是Java語言允許的任何數據類型,包括基本類型和現在介紹的引用類型。
3、屬性名:屬性名則只要是一個合法的標識符即可,但這只是從語法角度來說的;如果從程序可讀性角度來看,屬性名應該由一個或多個有意義的單詞連綴而成,第一個單詞首字母小寫,後面每個單詞首字母大寫,其他字母全部小寫,單詞與單詞之間不需使用任何分隔符。
4、默認值:定義屬性還可以定義一個可選的默認值。
提示:屬性是一種比較傳統、也比較符合漢語習慣的說法,在Java的官方說法里,屬性被稱為Field,因此有的地方也把屬性翻譯為欄位。

定義方法的語法格式如下:
[修飾符] 方法返回值類型 方法么(形參列表)
{
//由零條到多條可執行性語句組成的方法體
}

❸ 描述對象的兩個要素是屬性和方法

描述對象的兩個要素是屬性和方法?一直在用c#開發,但對這個東西還是不是很熟悉,總感覺基礎的東西一點都不懂決定用一段時間來整理和熟悉這些基本的東西啦。好了 廢話就不多說了。2016年10月19日說說c#中類和對象、方法和屬性的具體含義吧。

一、相關概念

1、對象:現實世界中的實體(世間萬物皆對象)

對象,即系統中用於描述客觀事物的一個實體,是構成系統的一個基本單位。

2、類:具有相似屬性和方法的對象的集合

是具有相同數據成員和函數成員的一組對象的集合,它為屬於該類的全部對象提供了抽象的描述。

3、面向對象程序設計的特點:封裝 繼承 多態

封裝:面向對象技術中的封裝,簡單來說就是將代碼及其處理的數據綁定在一起,形成一個獨立單位,對外實現完整功能,並盡可能隱藏對象的內部細節 。
繼承:繼承(Inheritance)也稱作派生,指的是特殊類的對象自動擁有一般類的全部數據成員與函數成員(構造函數和析構函數除外)。
多態:多態性(Polymorphism)是指一般類中定義的屬性或行為,被特殊類繼承之後,可以具有不同的數據類型或表現出不同的行為。

❹ 如何在Java類中定義介面屬性並如何使用介面的方法

摘要
一, 介面基礎知識

1, java語言不支持一個類有多個直接的父類(多繼承),但可以實現(implements)多個介面,間接的實現了多繼承.
2, 與介面相關的設計模式:
1, 定製服務模式
設計精粒度的介面,每個介面代表相關的一組服務,通過繼承來創建復合介面
2, 適配器模式
當每個系統之間介面不匹配時,用適配器來轉換介面
3, 默認適配器模式
為介面提供簡單的默認實現
4, 代理模式
為介面的實現類創建代理類,使用者通過代理來獲得實現類的服務
5, 標識類型模式
用介面來標識一種沒有任何行為的抽象類型
6, 常量介面模式
在介面中定義靜態常量,在其它類中通過import static語句引入這些常量
3, 介面的特徵歸納:
1, 介面中的成員變數默認都是public,static,final類型的(都可省略),必須被顯示初始化,即介面中的成員變數為常量(大寫,單詞之間用"_"分隔)
2, 介面中的方法默認都是public,abstract類型的(都可省略),沒有方法體,不能被實例化
public interface A
{
int CONST = 1; //合法,CONST默認為public,static,final類型
void method(); //合法,method()默認為public,abstract類型
public abstract void method2(); //method2()顯示聲明為public,abstract類型
}
3, 介面中只能包含public,static,final類型的成員變數和public,abstract類型的成員方法
public interface A
{
int var; //錯,var是常量,必須顯示初始化
void method(){...}; //錯,介面中只能包含抽象方法
protected void method2(); //錯,介面中的方法必須是public類型
static void method3(){...}; //錯,介面中不能包含靜態方法
}
4, 介面中沒有構造方法,不能被實例化
public interface A
{
public A(){...}; //錯,介面中不能包含構造方法
void method();
}
5, 一個介面不能實現(implements)另一個介面,但它可以繼承多個其它的介面
public interface A
{
void methodA();
}
public interface B
{
void methodB();
}
public interface C extends A, B //C稱為復合介面
{
void methodC();
}
public interface C implements A{...} //錯
6, 介面必須通過類來實現它的抽象方法
public class A implements B{...}
7, 當類實現了某個介面時,它必須實現介面中的所有抽象方法,否則這個類必須聲明為抽象的
8, 不允許創建介面的實例(實例化),但允許定義介面類型的引用變數,該引用變數引用實現了這個介面的類的實例
public class B implements A{}
A a = new B(); //引用變數a被定義為A介面類型,引用了B實例
A a = new A(); //錯誤,介面不允許實例化
9, 一個類只能繼承一個直接的父類,但可以實現多個介面,間接的實現了多繼承.
public class A extends B implements C, D{...} //B為class,C,D為interface
4, 通過介面,可以方便地對已經存在的系統進行自下而上的抽象,對於任意兩個類,不管它們是否屬於同一個父類,只有它
們存在相同的功能,就能從中抽象出一個介面類型.對於已經存在的繼承樹,可以方便的從類中抽象出新的介面,但從類
中抽象出新的抽象類卻不那麼容易,因此介面更有利於軟體系統的維護與重構.對於兩個系統,通過介面交互比通過抽象
類交互能獲得更好的松耦合.
5, 介面是構建松耦合軟體系統的重要法寶,由於介面用於描述系統對外提供的所有服務,因此介面中的成員變數和方法都
必須是public類型的,確保外部使用者能訪問它們,介面僅僅描述系統能做什麼,但不指明如何去做,所有介面中的方法
都是抽象方法,介面不涉及和任何具體實例相關的細節,因此介面沒有構造方法,不能被實例化,沒有實例變數.二, 比較抽象類與介面
1, 抽象類與介面都位於繼承樹的上層
相同點
1, 代表系統的抽象層,當一個系統使用一顆繼承樹上的類時,應該盡量把引用變數聲明為繼承樹的上層抽象類型,
這樣可以提高兩個系統之間的送耦合
2, 都不能被實例化
3, 都包含抽象方法,這些抽象方法用於描述系統能提供哪些服務,但不提供具體的實現
不同點:
1, 在抽象類中可以為部分方法提供默認的實現,從而避免在子類中重復實現它們,這是抽象類的優勢,但這一優勢
限制了多繼承,而介面中只能包含抽象方法.
由於在抽象類中允許加入具體方法,因此擴展抽象類的功能,即向抽象類中添加具體方法,不會對它的子類造
成影響,而對於介面,一旦介面被公布,就必須非常穩定,因為隨意在介面中添加抽象方法,會影響到所有的實
現類,這些實現類要麼實現新增的抽象方法,要麼聲明為抽象類
2, 一個類只能繼承一個直接的父類,這個父類可能是抽象類,但一個類可以實現多個介面,這是介面的優勢,但這
一優勢是以不允許為任何方法提供實現作為代價的三, 為什麼Java語言不允許多重繼承呢?
當子類覆蓋父類的實例方法或隱藏父類的成員變數及靜態方法時,Java虛擬機採用不同的綁定規則,假如還允許
一個類有多個直接的父類,那麼會使綁定規則更加復雜,因此,為了簡化系統結構設計和動態綁定機制,Java語言
禁止多重繼承.
而介面中只有抽象方法,沒有實例變數和靜態方法,只有介面的實現類才會實現介面的抽象方法(介面中的抽象方
法是通過類來實現的),因此,一個類即使有多個介面,也不會增加Java虛擬機進行動態綁定的復雜度.因為Java虛
擬機永遠不會把方法與介面綁定,而只會把方法與它的實現類綁定.四, 使用介面和抽象類的總體原則:
1, 用介面作為系統與外界交互的窗口
站在外界使用者(另一個系統)的角度,介面向使用者承諾系統能提供哪些服務,站在系統本身的角度,介面制定
系統必須實現哪些服務,介面是系統中最高層次的抽象類型.通過介面交互可以提高兩個系統之間的送耦合
系統A通過系統B進行交互,是指系統A訪問系統B時,
把引用變數聲明為系統B中的介面類型,該引用變數引用系統B中介面的實現類的實例.
public interface B
{
}
public class C implements B
{
}
public class A
{
}
B a = new C();
2, 介面本身必須非常穩定,介面一旦制定,就不允許隨遇更加,否則對外面使用者及系統本身造成影響
3, 用抽象類來定製系統中的擴展點
抽象類來完成部分實現,還要一些功能通過它的子類來實現 2008/1/9
一, Java多態機制中的綁定規則深入剖析
class Base
{
String var = "BaseVar"; //實例變數
static String staticVar = "StaticBaseVar"; //靜態變數 void method() //實例方法
{
System.out.println("Base method");
} static void staticMethod() //靜態方法
{
System.out.println("Static Base method");
}
}public class Sub extends Base
{
String var = "SubVar"; //實例變數
static String staticVar = "StaticSubVar"; //靜態變數

void method() //隱藏父類的method()方法
{
System.out.println("Sub method");
} static void staticMethod() //隱藏父類的staticMethod()方法
{
System.out.println("Static Sub method");
} String subVar = "Var only belonging to Sub"; void subMethod()
{
System.out.println("method only belonging to Sub");
} public static void main(String args[])
{
//引用變數who被聲明為Base類型,引用Sub類的實例
Base who = new Sub();

//成員變數(靜態變數,實例變數)與引用變數所聲明的類型(Base類型)的成員變數綁定
System.out.println("who.var = "+who.var); //所以,列印Base類的var變數
System.out.println("who.staticVar = "+who.staticVar); //所以,列印Base類的staticVar變數 //實例方法與引用變數實際引用的對象(Sub對象)的方法綁定
who.method(); //所以,列印Sub實例的method()方法 //靜態方法與引用變數所聲明的類型(Base類型)的方法綁定
who.staticMethod(); //所以,列印Base類的staticMethod()方法
}
}

【分析過程】
1, 對於一個引用類型的變數,Java編譯器按照它聲明的類型來處理.
例如在以下代碼中,編譯器認為who是Base類型的引用變數,不存在subVar成員變數喝subMethod()方法,編譯報錯
Base who = new Sub(); //引用變數who被聲明為Base類型,引用Sub類的實例
who.subVar = "123"; //編譯錯,在Base類中沒有subVar屬性
who.subMethod(); //編譯錯,在Base類中沒有submethod()方法
如果要訪問Sub類的成員,必須通過強制類型轉換:
Base who = new Sub();
//把Base引用類型的who成員變數強制轉換為Sub引用類型
//把引用變數轉換為子類的類型稱為向下轉型,把引用變數轉換為父類的類型稱為向上轉型
((Sub)who).subVar = "123";
((Sub)who).subMethod();
Java編譯器允許在具有直接或間接繼承關系的類之間進行類型轉換,對於向上轉型,Java編譯器會自動進行,對於
向下轉型,需要進行強制類型轉換
如果兩種類型之間沒有繼續關系,即不在繼承樹的同一個繼承分支上,那麼Java編譯器不允許進行類型轉換
2, 對於一個引用類型的變數,運行時Java虛擬機按照它實際引用的對象來處理
例如以下代碼雖編譯可通過,但運行時會拋出ClassCastException運行時異常
Base who = new Base(); //who引用Base類的實例
Sub s = (Sub)who; //運行時會拋出ClassCastException
在運行時,子類的對象可以轉換為父類類型,而父類的對象實際上無法轉換為子類類型
3, 在運行時環境中,通過引用類型變數來訪問所引用對象的方法和屬性時,Java虛擬機採用以下綁定規則:
1, 實例方法與引用變數實際引用的對象的方法綁定,這種綁定屬於動態綁定,因為是在運行時由Java虛擬機
動態決定的
2, 靜態方法與引用變數所聲明的類型的方法綁定,這種綁定屬於靜態綁定,因為實際上是在編譯階段就已經
綁定
3, 成員變數(靜態變數,實例變數)與引用變數所聲明的類型的成員變數綁定,這種綁定屬於靜態綁定,因為
實際上是在編譯階段就已經綁定

❺ javascript中怎麼定義一個帶屬性和方法的類

//定義屬性
functionDog(name,age){
this.name=name;
this.age=age;
}
//定義方法
Dog.prototype.hello=function(){
alert("Doctor"+this.name);
}
//實例化
vardog=newDog("Wang",3);
dog.hello();

a

b

c

d

e

f

g

謝謝謝謝謝謝碼密。的入輸要需所面。界理管台後器。由路陸登是。碼密理管。廖仲庭。器由。路。

❻ vba 如何查看屬性和方法的定義

vba和vb一樣,也有對象瀏覽器,可以查看常用對像的屬性和方法, 就在visual basic 編輯器的菜單欄里

❼ 對象 集合 屬性 方法 事件 這5個概念是如何定義和理解的它們之間的關系又是什麼樣子的呢

對象」即物體,所有物體都可以看作對象,對象的具體特徵稱為「屬性」,像滑鼠單擊這樣的稱為「事件」(我不再講枯燥的專業術語,你初學,肯定不太理解,所以我就以一個事例作為參考)觸發事件後,具體的處理措施稱之為「方法」。註:我講的雖說不多,但我感覺很易懂,關鍵不就是讓你理解嗎?
最後舉個例子再從宏觀上解釋一下:類,對象,方法,屬性,事件的概念。假如我們地球上的所有人是一個類,這個類的名稱為People,那麼地球上的每一個人就是People類的一個對象,每個人都有「嘴」等屬性,也有「罵人」的方法,當然「罵人」是通過「嘴」罵的,那麼是不是就可以說「罵人」的方法是屬性「嘴」的方法了呢?非也!屬性和方法的概念是地位平等的,不能說方法是屬性的方法,方法只能說是類的方法,而屬性同樣只能說是類的屬性。然後,你雖然有了「罵人」的方法,那你是不是就能見人就「罵」啊?你可以想像一下你這樣做的下場:)那麼我們什麼時候才能「罵」呢,當然是「別人先罵我們」這個事件發生的時候了。好的,在這里,「別人先罵我們」就是一個事件,它觸發了People類中某個對象,也是某個人「罵人」的方法。雖然「我們罵別人」和「別人罵我們」都是動作,但不同的是,「別人罵我們」是對象外部的,是事件;而「我們罵別人」是對象的方法,是對象自己的動作,是內部的。現在你明白了對象和事件的區別了吧。

❽ (1) 對面向對象編程思想的認識 (2) 類、對象的關系及實際中如何定義類、類的欄位、類的屬性、類的方法

面向對象編程,毫無疑問是圍繞「對象」展開的。

一、計算機的一切,就像人的意識一樣,是必須反映物質和物質世界的。而物質世界,具有如下特徵:
1、物以類聚,鳥以群分。——類
2、人上一百,形形色(shai,三聲)色,龍生九子,各有不同——繼承
3、活著就是變臉,不同的場合有不同的面孔——多態性
4、知人知面不知心——封裝
最後,客觀世界有多復雜,面向對象編程就想要多復雜。

二、類就是祖宗父母,對象就是兒孫。關系就是被繼承和繼承的關系
1、分析模型:看要模擬的事物具有怎樣的類別和屬性,具有怎樣的操作、行為,比如人,可以犯罪也可以做好事,犯罪和做好事都需要人的屬性,必須有手有腳有頭腦,有壞心腸或好心腸。
2、分析需求,看編程所需要你獲得哪些信息。比如明明研究人奔跑的速度,你非看他平時的道德評價,那就不好了。
3、抽象提取,把你分析的結果進行整理,去掉不需要的,看那些是一類的,就定義一個類,具有哪些共同屬性,就定義這些屬性,看他們有什麼方法,就定義方法。
4、實現這些類

❾ 在C#中的方法,屬性,函數有什麼區別,定義函數與這定義方法有什麼不一樣委託又是什麼

方法和函數都是一樣的,只不過叫法不同而已,在java那裡我們叫方法,不叫函數,在C#里就叫函數,屬性其實也是函數,只不過C#幫我們封裝成了屬性,在java中沒有屬性這說法,java是通過兩個方法對一個變數進行讀和寫,比如
int n = 0;
public void setN(int m)
{
n = m;
}
public int getN()
{
return n;
}
這兩個方法就相當與C#里的讀/寫屬性了

重載是指在一個類里有多個同名的方法,但是它們的參數類型和個數不能一樣,否則系統就找不到你要用的那個方法了

❿ 如何使用自定義屬性

使用屬性可以在設計時對類、properties和方法添加說明,然後在運行時通過反射資訊來檢查它們。本文為我們介紹了在開發應用時如何利用C#自定義屬性。 本文可以從技術文章下載出獲得,其中包含了一個使用定製屬性的Visual Studio專案示例檔。
屬性類是設計時可應用於類、properties和方法的特殊文類。屬性類提供描述元素某些方面屬性的方式或決定依附於該元素的其他類的行為,進而在運行時可以訪問和檢驗這些描述與行為。你可以將屬性類看作為類成員添加特殊修改器的一種方式。 例如,如果你曾經寫過Web服務,那肯定知道要使得方法在整個服務中是公開的,必須要使用WebMethod屬性。這是一個演示屬性應用的很好的例子,因為我們要用WebMethod屬性擴展編程模型。C#中沒有內建的方式來指定某個方法通過Web服務是可見的(因為內建有表明一個方法是私有的方式),因此需要添加WebMethod屬性來滿足這一需要。
設計自定義屬性 設計自定義屬性的過程十分簡單,在設計屬性前只需要考慮以下幾個方面:使用屬性的目的是什麼? 屬性可以以很多方式使用。你需要定義屬性到底要完成什麼功能並確保這些特定功能沒有內建在.NET框架集中。使用.NET修改器要比使用屬性好,因為這將簡化同其他裝配件的集成過程。
屬性必須儲存什麼資訊? 屬性是打算用來指示某個功能的簡單標志嗎?或者屬性是否要儲存資訊?一個屬性可以擁有設計時賦予的一組資訊,並在運行時查看這些資訊。例如,看一下示例應用中的別名屬性。屬性應該駐留在哪個裝配件中? 大多數情況下,可以將屬性包含在使用該屬性的裝配件中。不過也有這樣的例子,將屬性駐留在公共的、羽量級的、共用裝配件中會更好些。這種類型的配置允許客戶使用屬性時不必引用不需要的裝配件。哪些裝配件將會識別屬性? 如果沒有模組讀取屬性,那麼它將一文不值。你很可能將讀取屬性的類放在屬性駐留的同一個裝配件中。然而,正像前面提到的,也有這樣的例子,你想將讀取屬性的方法與屬性自身分別放在不同的裝配件中。
public string SSN{get { return _ssn; }
set { _ssn = value; }
} 作為更復雜一點的例子,假設我們將有一個屬性稱為「Alias」。該屬性的任務是檢查一個property可能擁有別名。這將允許將一個property值映射給另一個property即使批roperty的名字不匹配。這個屬性接受一系列字串值作為映射名。(列表B) 列表B[Alias ("FirstName", "First")]
public string FName{get { return _fName; }
set { _fName = value; }
} 在這個例子中,property「FName」被映射到「FirstName」和「First」,請查看示例應用以更詳細的瞭解這種應用。
public Alias(params string[] names){this.Names = names;}public string[] Names{get { return _names; }
set { _names = value; }}}正如你所看到的,這就是一個普通的類,唯一的例外就是繼承自System.Attribute類。我們不需要作任何特別的事情使它成為一個類。我們只是簡單的定義了一個需要使用的構造函數並創建了一個property和一個存儲資料的私有成員。 列表D是個更簡單的屬性——「Hide」屬性。這個屬性不需要構造函數(使用默認的構建函數),也不儲存資料。因為這個屬性只是一個簡單的標志類型的屬性。 列表DClass Hide : System.Attribute{//This is a simple attribute, that only requires
// the default constructor.}從代碼中讀取屬性 讀取屬性並檢查其中的資料比使用屬性或創建屬性顯著地更加復雜。讀取屬性要求開發人員要對如何使用一個物件的反射資訊有個基本瞭解。如果你不熟悉反射機制,可以閱讀「應用反射」系列文章。 假設我們正在查看一個類,我們想知道該類的那個properties使用了Alias屬性以及都有哪些別名。列表E實現了這個功能。 列表EPrivate Dictionary<string, string> GetAliasListing(Type destinationType){//Get all the properties that are in the
// destination type.
PropertyInfo[] destinationProperties = destinationType.GetProperties();
Dictionary<string, string> aliases = newDictionary<string, string>();
for each (PropertyInfo property in destinationProperties){//Get the alias attributes.
object[] aliasAttributes =
property. GetCustomAttributes( typeof(Alias), true);
//Loop through the alias attributes and
// add them to the dictionary.
foreach (object attribute in aliasAttributes)
foreach (string name in ((Alias)attribute).Names)
aliases.Add(name, property.Name);
//We also need to add the property name
// as an alias.
aliases.Add(property.Name, property.Name);}return aliases;}這段代碼最重要的地方是對GetCustomAttributes的調用以及迴圈遍歷屬性提取別名的地方。 GetCustomAttributes方法可以在我們從物件類型中提取的PropertyInfo類中找到。在上面的應用中,我們將要查詢的屬性類型作為參數傳給GetCustomAttributes方法,同時還將「true」傳遞給該方法使得可以列出繼承的屬性。如何發現匹配的屬性,GetCustomAttributes方法將返回一個物件陣列。還有另外一種超負荷方法可以列出property上的所有屬性,而不管屬性類型是什麼。 一旦有了屬性,我們需要檢查它們並從中提取需要的資訊。這可以通過遍歷由GetCustomAttributes方法得到的物件陣列並將每個物件映射成我們要查詢的屬性來完成。在完成映射後,我們就可以像訪問任意其他類的properties一樣來訪問屬性的properties。 正如我在前面所說,讀取屬性是最困難的部分。然而,一旦我們寫後讀取屬性的代碼後,將來回憶和實施起來就相當容易了。
應用示例 我強烈建議你下載本文包含的這個應用示例。這個應用示例在一個簡單的Windows應用中實現了下面的屬性,並演示了如何讀取和使用它們。Alias——這同上面提到的Alias屬性一樣。當你需要將一種類型的物件翻譯為另一種類型時,需要使用該屬性。例如,如果你有一個Customer物件和一個Address物件,你可能需要將它們都翻譯為一個合並的包含人名和位址的Person物件,當一個不能使用直接映射時,可以使用該屬性。DisplayName——示例代碼中包括檢查一個類實例並將它的property名稱與值輸出到螢幕上的代碼。這個屬性可用於覆蓋送到螢幕顯示的property名稱。例如,一個名為「FName」property可以使用DisplayName屬性,因此它顯示為「First Name」。Examine——這個屬性使得示例應用中的PrintObject方法進入更深一層,並輸出使用了Examine屬性的property的值。例如,示例應用中的Customer物件將Examine屬性應用到Address property。這將指示PrintObject方法輸出address property中的所有資訊。Hide——這個屬性指示PrintObject()方法不要將當前property輸出到螢幕。該屬性用在Customer物件的SSN property上。 示例應用中包含了實現和讀取屬性每一步的注釋,仔細看一下,我敢保證你會發現一些在自己的應用中可以利用的功能。

閱讀全文

與如何識別定義方法或屬性相關的資料

熱點內容
大眾天線安裝方法 瀏覽:50
社會學研究方法pps 瀏覽:846
路亞鉤綁方法圖片 瀏覽:887
測量水的方法和工具 瀏覽:33
水帶掛鉤使用方法 瀏覽:483
孩子不肯背誦換一種方法就能解決 瀏覽:847
如何消除設備靜電的幾個方法 瀏覽:721
木蝴蝶的食用方法 瀏覽:689
巴金的閱讀方法是什麼 瀏覽:792
福特杯使用方法 瀏覽:277
摩絲使用方法 瀏覽:802
移動寬頻使用方法 瀏覽:27
鄉土中國研究背景及方法 瀏覽:730
surf快速記憶方法 瀏覽:894
男士精油的使用方法 瀏覽:852
腦血管瘤有什麼治療方法 瀏覽:920
最簡單的刷鐵塔方法 瀏覽:256
吃麵包的方法和視頻 瀏覽:848
有沒有再簡單點的方法 瀏覽:907
腰椎軟骨病的治療方法 瀏覽:952