六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

Java入門者容易混淆的幾個問題

[摘要]1.String類和StringBuffer類   它們都是處理字符串的類,但是它們有一個最大的區別,那就是。   eg1:   ......   //omit some code   String s1="You are hired!";   System.out.print...

  1.String類和StringBuffer類

  它們都是處理字符串的類,但是它們有一個最大的區別,那就是。

  eg1:

  ......
  //omit some code
  String s1="You are hired!";
  System.out.println(s1.replace(′h′,′f′));//用f把字串中的h替換了
  System.out.println(s1);
  ......
  //omit some code

  運行結果:

   You are fired!
   You are hired!

  結果分析:

  從結果,明顯可知,s1的值并沒有被改變,而第一行結果只是屏幕內容的替換.

  eg2:

  ......
  //omit some code
  StringBuffer s2=new StringBuffer("Hello from Java!");
  s2.replace(6,10,"to");
  System.out.println(s2);
  ......
  //omit some code

  運行結果:

  Hello to Java!

  結果分析:

  顯然,s2的值已改變.
  
  2.位邏輯與條件邏輯

  首先聲明, 為了與位邏輯更好區分開來,我把通常所說的邏輯取了個別名叫做條件邏輯.

  它們都有各自的操作符,位邏輯操作符有:&(與運算),^(異或運算), (或運算);條件邏輯操作符有:&&(并
  且), (或者)。

  位邏輯運算通常是針對兩個數而言,實行位操作;而條件邏輯運算是針對兩個條件表達式而言,實行條件操作.其實,位邏輯操作符一樣可以實現條件操作,但是此時有一個重要的區別:用位操作符時,不管操作符兩邊的條件表達式成不成立,它都要通通進行運算判斷,而條件邏輯操作符不一樣了,如果通過左側的操作數就可以進行它們需要的判斷,那么它就不會再計算右側的操作數了,這種情況叫短路.廢話少說!且看下例.

  eg1:

  ......
  //omit some code
  double value=0;
  if(value!=0 && 1/value<1000){
  System.out.println("The value is not too small.");
  }
  else{
  System.out.println("The value is too small.");
  }
  ......
  //omit some code

  運行結果:

  The value is too small.

  結果分析:

  照理說應會出現除數為0的錯誤,但是我剛才說了,由于條件邏輯操作符是短路操作符,顯然,value!=0不成立,立即就可作出判斷應執行else后的語句,所以它就不再會運算判斷1/value<1000了.如果不懂請再看一
  例:

   eg2:

  ......
  //omit some code
  double int1=0,int2=1,int3=1;
  if(int1!=0 & (int2=2)==1){}
  System.out.println("int2="+int2);
  if(int1!=0 && (int3=2)==1){}
  System.out.println("int3="+int3);
  ......
  //omit some code

  運行結果:

   int2=2.0
   int3=1.0

  結果分析:

  我想不用我分析了,你應該懂了吧.

  3.實例變量與類變量

  可以通過兩種方法在類中存儲數據───作為實例變量和類變量.實例變量是特定于對象的,如果你有兩個對象(即一個類的兩個實例),每一個對象中的實例變量獨立于另一個對象中的實例變量的;另一方面,兩個對象的類變量均指向相同的數據,并因此面保存相同的值,換句話說,類變量被類中的所有對象共享.差點忘了,它們在形式上的區別,類變量在聲明時比實例變量多一個static.

  eg:

  class data
  {
  public int intdata=0;//顯然,intdata在這兒是實例變量
  }
  public class exam
  {
  public static void main(String[] args)
  {
  data a,b;
  a=new data();
  b=new data();
  a.intdata=1;
  System.out.println("b.indata="+b.intdata);
  }
  }


  運行結果:

  b.intdata=0

  結果分析:

  可以看出,a.intdata的值雖然變了,但并沒有影響b.intdata.但是如果在data類中聲明intdata時,在其前面加上static就變成類變量了(即:public static int intdata=0;),則此時運行結果會變為:

  b.intdata=1

  這次a.intdata值的改變可把b.intdata影響了,事實上,對象a和b的類變量均指向相同的數據,所有值一樣,這就是類變量的作用。

    4.實例方法,類方法,構造器方法

  我們通常所說的方法系指實例方法,就像c語言中的函數一樣,其具體方法我就不用說了,在這里我主要是用它來區分類方法和構造器方法.類方法與實例方法最大的區別是:在形式上類方法多一個static,在用法上,
  不必創建對象就可直接調用類方法(而實例方法卻一定要先創建對象,再通過對象調用)。

  eg:

  class add
  {
  static int addem(int op1,int op2)
  {
  return op1+op2;
  }
  }
  public class xxf
  {
  public static void main(String[] args)
  {
  System.out.println("addem(2,2)="+add.addem(2,2));
  } //直接用類名作為對象調用類方法
  }

  注: 也可按通常的方法,即先創建對象,再調用方法,不過,這時static就無任何意義了。

  再說說構造器方法,它是用來初始化對象中的數據的一種方法,創建很容易,只需在類中加上一個與這個類同名的方法,不需要在前面加任何訪問說明符或者返回類型,另外,構造器也一樣可以向方法一樣傳遞參數.

  eg:

  class data
  {
  private String data1;//事先聲明

  data(String s)
  {
  data1=s; /*通過接收數據來初始化變量.(注:不能在構造器內
  聲明變量,事先在外就要聲明.)*/
  }

  public String getdata()
  {
  return data1;
  }
  }

  public class xxf
  {
  public static void main(String[] args)
  {
  System.out.println((new data("I love you")).getdata());/*通過傳遞參數調用構造器新建一
  個對象,再通過對象調用方法得到數據*/
  }
  }


  5.接口與類

  類是對一類特定對象的規格說明,我們可以類定義創建對象,通過創建對象來組合所有屬于該類的組件,而接口不能這樣做.而接口實質上就是一個常量和抽象方法的集合,要使用一個接口,就需要在類中實現這個接口,然后作為類定義的一部分,編寫接口中聲明的每一個方法,接口中的方法永遠是public,abstract,接口中的常量永遠是public static和final,因此不需要為它們說明屬性。

  因為在Java中不支持多重繼承,但是,可以用接口來實現類似的功能,這是接口的重要作用之一。

  eg:

  interface anyone //定義一個接口
  {
  final double PI=3.1416;
  void setNumber(int number);
  int getNumber();
  }
  interface anyother //定義另一個接口
  {
  void setString(String str);
  String getString();
  }

  class xxf implement anyone,anyother //定義一個類,并使用兩個接口
  {
  int number;
  String str;
  public xxf(){}
  void setNumber(int number)
  {
  this.number=number;
  }
  void setString(String str)
  {
  this.str=str;
  }
  void int getNumber(){}//可以為一個空實現.
  void String getString(){}
  }
  //在類中必須實現接口中聲明的所有方法.(當然也可不必,但是要用到適配器類或用抽象類)




主站蜘蛛池模板: 五月婷丁香 | 色五月情 | 亚洲wwwwww| 日韩激情无码免费毛片 | 日韩精品视频观看 | 欧洲一区在线观看 | 日韩特级毛片免费观看视频 | 天天插日日射 | 日韩推理片在线免费看网站 | 亚洲刺激视频 | 日本免费网站视频www区 | 青青草国产精品视频 | 最新天堂网 | 亚洲激情在线看 | 亚洲欧美在线精品一区二区 | 亚洲欧美一区二区三区久久 | 亚洲专区路线一路线二 | 欧美综合国产精品日韩一 | 日本黄在线观看 | 天天干天天透 | 亚洲成a人不卡在线观看 | 色成人综合网 | 日本成人在线免费 | 日韩一级在线观看 | 天天干夜夜谢 | 中文国产成人久久精品小说 | 日日摸夜夜夜夜夜添 | 色综合久久天天综线观看 | 五月一区二区久久综合天堂 | 日韩免费不卡视频 | 亚洲成a人在线观看 | 四虎国产永久在线观看 | 欧美小视频在线 | 天天操天天艹 | 五月婷婷色 | 天天摸天天澡天天碰天天弄 | 亚洲欧美网站 | 欧美性夜 | 性综合网 | 午夜在线播放免费人成无 | 日日碰日日摸日日澡视频播放 |