特黄特色三级在线观看免费,看黄色片子免费,色综合久,欧美在线视频看看,高潮胡言乱语对白刺激国产,伊人网成人,中文字幕亚洲一碰就硬老熟妇

學(xué)習(xí)啦 > 知識(shí)大全 > 知識(shí)百科 > 百科知識(shí) > 類(lèi)方法和實(shí)例方法的區(qū)別有哪些

類(lèi)方法和實(shí)例方法的區(qū)別有哪些

時(shí)間: 映芳735 分享

類(lèi)方法和實(shí)例方法的區(qū)別有哪些

  我們已經(jīng)知道類(lèi)體中的方法分為實(shí)例方法和類(lèi)方法兩種,用static修飾的是類(lèi)方法。下面小編跟大家講講類(lèi)方法和實(shí)例方法的區(qū)別,一起來(lái)看看。

  類(lèi)方法和實(shí)例方法的區(qū)別

  當(dāng)一個(gè)類(lèi)創(chuàng)建了一個(gè)對(duì)象后,這個(gè)對(duì)象就可以調(diào)用該類(lèi)的方法。當(dāng)類(lèi)的字節(jié)碼文件被加載到內(nèi)存時(shí),類(lèi)的實(shí)例方法不會(huì)被分配入口地址,當(dāng)該類(lèi)創(chuàng)建對(duì)象后,類(lèi)中的實(shí)例方法才分配入口地址,從而實(shí)例方法可以被類(lèi)創(chuàng)建的任何對(duì)象調(diào)用執(zhí)行。

  需要注意的是,當(dāng)我們創(chuàng)建第一個(gè)對(duì)象時(shí),類(lèi)中的實(shí)例方法就分配了入口地址,當(dāng)再創(chuàng)建對(duì)象時(shí),不再分配入口地址,也就是說(shuō),方法的入口地址被所有的對(duì)象共享,當(dāng)所有的對(duì)象都不存在時(shí),方法的入口地址才被取消。

  對(duì)于類(lèi)中的類(lèi)方法,在該類(lèi)被加載到內(nèi)存時(shí),就分配了相應(yīng)的入口地址。從而類(lèi)方法不僅可以被類(lèi)創(chuàng)建的任何對(duì)象調(diào)用執(zhí)行,也可以直接通過(guò)類(lèi)名調(diào)用。類(lèi)方法的入口地址直到程序退出才被取消。

  類(lèi)方法在類(lèi)的字節(jié)碼加載到內(nèi)存時(shí)就分配了入口地址,因此,Java語(yǔ)言允許通過(guò)類(lèi)名直接調(diào)用類(lèi)方法,而實(shí)例方法不能通過(guò)類(lèi)名調(diào)用。

  在講述類(lèi)的時(shí)候我們強(qiáng)調(diào)過(guò),在Java語(yǔ)言中,類(lèi)中的類(lèi)方法不可以操作實(shí)例變量,也不可以調(diào)用實(shí)例方法,這是因?yàn)樵陬?lèi)創(chuàng)建對(duì)象之前,實(shí)例成員變量還沒(méi)有分配內(nèi)存,而且實(shí)例方法也沒(méi)有入口地址。

  下面小編給大家舉個(gè)例子說(shuō)明一下兩種方法的區(qū)別

  class A

  { int x,y;

  static float f(int a){}

  float g(int x1,int x2){}

  }

  class B

  { public static void main(String args[])

  { A a1=new A();

  A.f(2,3); //合法。

  a1.f(2,4); //合法。

  a1.g(2,5); //合法。

  A.g(3,2); //非法。

  }

  }

  實(shí)例方法的介紹

  實(shí)例方法也叫做對(duì)象方法。

  類(lèi)方法是屬于整個(gè)類(lèi)的,而實(shí)例方法是屬于類(lèi)的某個(gè)對(duì)象的。

  由于類(lèi)方法是屬于整個(gè)類(lèi)的,并不屬于類(lèi)的哪個(gè)對(duì)象,所以類(lèi)方法的方法體中不能有與類(lèi)的對(duì)象有關(guān)的內(nèi)容。即類(lèi)方法體有如下限制:

  (1) 類(lèi)方法中不能引用對(duì)象變量;

  (2) 類(lèi)方法中不能調(diào)用類(lèi)的對(duì)象方法;

  (3) 在類(lèi)方法中不能使用super、this關(guān)鍵字。

  (4)類(lèi)方法不能被覆蓋。

  如果違反這些限制,就會(huì)導(dǎo)致程序編譯錯(cuò)誤。

  與類(lèi)方法相比,對(duì)象方法幾乎沒(méi)有什么限制:

  (1) 對(duì)象方法中可以引用對(duì)象變量,也可以引用類(lèi)變量;

  (2) 對(duì)象方法中可以調(diào)用類(lèi)方法;

  (3) 對(duì)象方法中可以使用super、this關(guān)鍵字。

  在程序設(shè)計(jì)中,一些通用的、公用型的方法與類(lèi)的對(duì)象無(wú)關(guān),因此常常被作為類(lèi)方法實(shí)現(xiàn)。如Java類(lèi)庫(kù)中Math類(lèi),其中多數(shù)的數(shù)學(xué)運(yùn)算操作都被定義成靜態(tài)方法。因此,可以使用類(lèi)方法把一些通用的、公用型的方法放在合適的類(lèi)中,從而很好地將它們組織起來(lái)。應(yīng)用程序中的主方法main就是類(lèi)方法。

  例如:

  class Clerk {

  int c_ClerkNo;//職員號(hào)

  String c_ClerkName;//職員姓名

  double c_ClerkSalary;//工資

  static int c_NextClerkNo=1000;//下一個(gè)職員號(hào)

  static double c_LowSalary=280;//例4-11

  public Clerk(String name,double salary) {

  c_ClerkNo=++c_NextClerkNo;

  // c_ClerkNo=c_NextClerkNo++;

  c_ClerkName=new String(name);

  // c_ClerkName=name;

  c_ClerkSalary=salary;

  }

  }

  public class InstanceClerk

  {

  public static void main(String[] args)

  {

  Clerk objclerk1=new Clerk("張三",892.5);

  Clerk objclerk2=new Clerk("李四",1025.8);

  String aName=new String("王五");

  Clerk objclerk3=new Clerk(aName,2000);

  System.out.println("姓名:"+objclerk1.c_ClerkName+"編號(hào):"+objclerk1.c_ClerkNo+"工資:"+objclerk1.c_ClerkSalary);

  System.out.println("姓名:"+objclerk2.c_ClerkName+"編號(hào):"+objclerk2.c_ClerkNo+"工資:"+objclerk2.c_ClerkSalary);

  System.out.println("姓名:"+objclerk3.c_ClerkName+"編號(hào):"+objclerk3.c_ClerkNo+"工資:"+objclerk3.c_ClerkSalary);

  System.out.println("最低工資:職員1="+objclerk1.c_LowSalary);

  System.out.println("最低工資:職員2="+objclerk2.c_LowSalary);

  Clerk.c_LowSalary=330;

  System.out.println("提高以后");

  System.out.println("最低工資:職員1="+objclerk1.c_LowSalary);

  System.out.println("最低工資:職員2="+objclerk2.c_LowSalary);

  }

  }

  你可以參考這個(gè)源程序,然后自己將注釋的語(yǔ)句去掉注釋等等,運(yùn)行一下就會(huì)明白的。

  Java中string類(lèi)的方法

  一、構(gòu)造函數(shù)

  String(byte[ ] bytes):通過(guò)byte數(shù)組構(gòu)造字符串對(duì)象。

  String(char[ ] value):通過(guò)char數(shù)組構(gòu)造字符串對(duì)象。

  String(Sting original):構(gòu)造一個(gè)original的副本。即:拷貝一個(gè)original。

  String(StringBuffer buffer):通過(guò)StringBuffer數(shù)組構(gòu)造字符串對(duì)象。

  例如:

  byte[] b = {'a','b','c','d','e','f','g','h','i','j'};

  char[] c = {'0','1','2','3','4','5','6','7','8','9'};

  String sb = new String(b); //abcdefghij

  String sb_sub = new String(b,3,2); //de

  String sc = new String(c); //0123456789

  String sc_sub = new String(c,3,2); //34

  String sb_copy = new String(sb); //abcdefghij

  System.out.println("sb:"+sb);

  System.out.println("sb_sub:"+sb_sub);

  System.out.println("sc:"+sc);

  System.out.println("sc_sub:"+sc_sub);

  System.out.println("sb_copy:"+sb_copy);

  輸出結(jié)果:sb:abcdefghij

  sb_sub:de

  sc:0123456789

  sc_sub:34

  sb_copy:abcdefghij


猜你感興趣:

1.幾種提高記憶能力的方法

2.家務(wù)活的種類(lèi)及分類(lèi)方法有什么

3.ajax調(diào)用java方法

4.曇花的養(yǎng)殖方法和注意事項(xiàng)

5.創(chuàng)業(yè)類(lèi)型和案例

537061