Java學(xué)習(xí)筆記(一)

java語(yǔ)法學(xué)習(xí)

對(duì)象和類

  • 對(duì)象:對(duì)象是類的一個(gè)實(shí)例宠纯,有狀態(tài)和行為卸夕。例如,一條狗是一個(gè)對(duì)象婆瓜,它的狀態(tài)有:顏色快集、名字、品種廉白;行為有:搖尾巴个初、叫、吃等猴蹂。
  • :類是一個(gè)模板院溺,它描述一類對(duì)象的行為和狀態(tài)。

Java中的對(duì)象

軟件對(duì)象也有狀態(tài)和行為磅轻。軟件對(duì)象的狀態(tài)就是屬性珍逸,行為通過(guò)方法體現(xiàn)逐虚。
在軟件開發(fā)中,方法操作對(duì)象內(nèi)部狀態(tài)的改變弄息,對(duì)象的相互調(diào)用也是通過(guò)方法來(lái)完成。

Java 中的類

類可以看成是創(chuàng)建Java對(duì)象的模板


public class Dog {
    /** 屬性 */
    String breed;
    int size;
    String colour;
    int age;
    /** 方法 */
    void eat() {
    }
    void run() {
    }
    void sleep(){
    }
    void name(){
    }
}

一個(gè)類中可以包含以下變量類型:

  • 局部變量:在方法勤婚、構(gòu)造方法或者語(yǔ)句塊中定義的變量被稱為局部變量摹量。變量聲明和初始化都是在方法中,方法結(jié)束后馒胆,變量就會(huì)自動(dòng)銷毀缨称。
  • 成員變量:成員變量是定義在類中,方法體之外的變量祝迂。這種變量在創(chuàng)建對(duì)象的時(shí)候?qū)嵗谰 3蓡T變量可以被類中方法、構(gòu)造方法和特定類的語(yǔ)句塊訪問(wèn)型雳。
  • 類變量:類變量也聲明在類中当凡,方法體之外,但必須聲明為 static 類型纠俭。

構(gòu)造方法

在創(chuàng)建一個(gè)對(duì)象的時(shí)候沿量,至少要調(diào)用一個(gè)構(gòu)造方法。構(gòu)造方法的名稱必須與類同名冤荆,一個(gè)類可以有多個(gè)構(gòu)造方法朴则。
(例如:要?jiǎng)?chuàng)建一個(gè)dog1對(duì)象,必須使用和Dog類同名的方法Dog())

創(chuàng)建對(duì)象

對(duì)象是根據(jù)類創(chuàng)建的钓简。在Java中乌妒,使用關(guān)鍵字 new 來(lái)創(chuàng)建一個(gè)新的對(duì)象。創(chuàng)建對(duì)象需要以下三步:

  • 聲明:聲明一個(gè)對(duì)象外邓,包括對(duì)象名稱和對(duì)象類型撤蚊。
  • 實(shí)例化:使用關(guān)鍵字 new 來(lái)創(chuàng)建一個(gè)對(duì)象。
  • 初始化:使用 new 創(chuàng)建對(duì)象時(shí)损话,會(huì)調(diào)用構(gòu)造方法初始化對(duì)象拴魄。
    一個(gè)創(chuàng)建對(duì)象的例子:
public class Dog{
   public Dog(String kind){
      //這個(gè)構(gòu)造器僅有一個(gè)參數(shù):kind
      System.out.println("狗的種類是 : " + kind ); 
   }
   public static void main(String[] args){
      // 下面的語(yǔ)句將創(chuàng)建一個(gè)Dog對(duì)象
      Dog dogKind = new Dog( "Teddy" );
   }
}

訪問(wèn)實(shí)例變量和方法

下面的例子展示如何訪問(wèn)實(shí)例變量和調(diào)用成員方法:

public class Car{
   String carColor;
   public Car(String type){
      // 這個(gè)構(gòu)造器僅有一個(gè)參數(shù):type
      System.out.println("車的種類是 : " + type); 
   }
 
   public void setAge( String color){
       carColor = color;
   }
 
   public int getColor( ){
       System.out.println("汽車的顏色為 : " +color ); 
       return carColor;
   }
 
   public static void main(String[] args){
      /* 創(chuàng)建對(duì)象 */
      Car myCar = new Car( "Ferrari" );
      /* 通過(guò)方法來(lái)設(shè)定color */
      myCar.setColor( black );
      /* 調(diào)用另一個(gè)方法獲取color */
      myCar.getColor( );
      /*你也可以像下面這樣訪問(wèn)成員變量 */
      System.out.println("變量值 : " + myCar.carColor ); 
   }

Java包

Java變量類型

局部變量
實(shí)例變量
類變量

Java修飾符

訪問(wèn)控制修飾符

Java中,可以使用訪問(wèn)控制符來(lái)保護(hù)對(duì)類席镀、變量匹中、方法和構(gòu)造方法的訪問(wèn)。Java 支持 4 種不同的訪問(wèn)權(quán)限豪诲。

  • default (即默認(rèn)顶捷,什么也不寫): 在同一包內(nèi)可見(jiàn),不使用任何修飾符屎篱。使用對(duì)象:類服赎、接口葵蒂、變量、方法重虑。

  • private : 在同一類內(nèi)可見(jiàn)践付。使用對(duì)象:變量、方法缺厉。 注意:不能修飾類(外部類)

  • public: 對(duì)所有類可見(jiàn)永高。使用對(duì)象:類、接口提针、變量命爬、方法

  • protected : 對(duì)同一包內(nèi)的類和所有子類可見(jiàn)。使用對(duì)象:變量辐脖、方法饲宛。 注意:不能修飾類(外部類)。

非訪問(wèn)控制修飾符

為了實(shí)現(xiàn)一些其他的功能嗜价,Java 也提供了許多非訪問(wèn)修飾符艇抠。

static 修飾符,用來(lái)修飾類方法和類變量久锥。

final 修飾符练链,用來(lái)修飾類、方法和變量奴拦,final 修飾的類不能夠被繼承媒鼓,修飾的方法不能被繼承類重新定義,修飾的變量為常量错妖,是不可修改的绿鸣。

abstract 修飾符,用來(lái)創(chuàng)建抽象類和抽象方法暂氯。

synchronized 和 volatile 修飾符潮模,主要用于線程的編程。

循環(huán)

增強(qiáng)for循環(huán)

聲明語(yǔ)句:聲明新的局部變量痴施,該變量的類型必須和數(shù)組元素的類型匹配擎厢。其作用域限定在循環(huán)語(yǔ)句塊,其值與此時(shí)數(shù)組元素的值相等辣吃。
表達(dá)式:表達(dá)式是要訪問(wèn)的數(shù)組名动遭,或者是返回值為數(shù)組的方法。
實(shí)例:

public class Test {
   public static void main(String[] args){
      int [] numbers = {11, 22, 33, 44, 55};
 
      for(int x : numbers ){
         System.out.print( x );
         System.out.print(" ");
      }
      System.out.print("\n");
      String [] Colors ={"blue", "red", "black", "white"};
      for( String color : Colors ) {
         System.out.print( color );
         System.out.print(" ");
      }
   }
}

輸出結(jié)果:

11 22 33 44 55
blue red black white

break關(guān)鍵字

break 跳出最里層的循環(huán)神得,并且繼續(xù)執(zhí)行該循環(huán)下面的語(yǔ)句厘惦。
實(shí)例

public class Test {
   public static void main(String[] args) {
      int [] numbers = {11, 22, 33, 44, 55};
 
      for(int x : numbers ) {
         // x 等于 30 時(shí)跳出循環(huán)
         if( x == 30 ) {
            break;
         }
         System.out.print( x );
         System.out.print("\n");
      }
   }
}

輸出

11 
22

continue關(guān)鍵字

讓程序立刻跳轉(zhuǎn)到下一次循環(huán)的迭代。

public class Test {
   public static void main(String[] args) {
      int [] numbers = {11, 22, 33, 44, 55};
 
      for(int x : numbers ) {
         if( x == 44) {
        continue;
         }
         System.out.print( x );
         System.out.print("\n");
      }
   }
}

輸出

11 
22 
33 
55

Java數(shù)組

聲明數(shù)組變量

dataType[] arrayRefVar;  // 首選的方法

創(chuàng)建數(shù)組變量

Java語(yǔ)言使用new操作符來(lái)創(chuàng)建數(shù)組哩簿,語(yǔ)法如下:

arrayRefVar = new dataType[arraySize];

數(shù)組變量的聲明宵蕉,和創(chuàng)建數(shù)組可以用一條語(yǔ)句完成酝静,如下所示:

dataType[] arrayRefVar = new dataType[arraySize];

正則表達(dá)式

(見(jiàn):正則表達(dá)式 )

Java方法

方法

Java方法是語(yǔ)句的集合,它們?cè)谝黄饒?zhí)行一個(gè)功能羡玛。

  • 方法是解決一類問(wèn)題的步驟的有序組合
  • 方法包含于類或?qū)ο笾?/li>
  • 方法在程序中被創(chuàng)建别智,在其他地方被引用

方法的定義

方法的調(diào)用

Java 支持兩種調(diào)用方法的方式,根據(jù)方法是否返回值來(lái)選擇稼稿。
當(dāng)程序調(diào)用一個(gè)方法時(shí)薄榛,程序的控制權(quán)交給了被調(diào)用的方法。當(dāng)被調(diào)用方法的返回語(yǔ)句執(zhí)行或者到達(dá)方法體閉括號(hào)時(shí)候交還控制權(quán)給程序渺杉。

  • 當(dāng)方法返回一個(gè)值的時(shí)候蛇数,方法調(diào)用通常被當(dāng)做一個(gè)值挪钓。
  • 如果方法返回值是void是越,方法調(diào)用一定是一條語(yǔ)句

方法的重載

構(gòu)造方法

  • 當(dāng)一個(gè)對(duì)象被創(chuàng)建時(shí)候,構(gòu)造方法用來(lái)初始化該對(duì)象碌上。構(gòu)造方法和它所在類的名字相同倚评,但構(gòu)造方法沒(méi)有返回值。
  • 通常會(huì)使用構(gòu)造方法給一個(gè)類的實(shí)例變量賦初值馏予,或者執(zhí)行其它必要的步驟來(lái)創(chuàng)建一個(gè)完整的對(duì)象天梧。
  • 不管你是否自定義構(gòu)造方法,所有的類都有構(gòu)造方法霞丧,因?yàn)?Java 自動(dòng)提供了一個(gè)默認(rèn)構(gòu)造方法呢岗,默認(rèn)構(gòu)造方法的訪問(wèn)修飾符和類的訪問(wèn)修飾符相同。
  • 一旦你定義了自己的構(gòu)造方法蛹尝,默認(rèn)構(gòu)造方法就會(huì)失效后豫。

可變參數(shù)

Java 流(Stream)、文件(File)和IO

Java 流(Stream)突那、文件(File)和IO

Java異常處理

異常處理

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末挫酿,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子愕难,更是在濱河造成了極大的恐慌早龟,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件猫缭,死亡現(xiàn)場(chǎng)離奇詭異葱弟,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)猜丹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門翘悉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人居触,你說(shuō)我怎么就攤上這事妖混±铣啵” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵制市,是天一觀的道長(zhǎng)拣播。 經(jīng)常有香客問(wèn)我,道長(zhǎng)悦析,這世上最難降的妖魔是什么培廓? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮误褪,結(jié)果婚禮上责鳍,老公的妹妹穿的比我還像新娘。我一直安慰自己兽间,他們只是感情好历葛,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著嘀略,像睡著了一般恤溶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上帜羊,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天咒程,我揣著相機(jī)與錄音,去河邊找鬼讼育。 笑死帐姻,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的奶段。 我是一名探鬼主播饥瓷,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼忧饭!你這毒婦竟也來(lái)了扛伍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤词裤,失蹤者是張志新(化名)和其女友劉穎刺洒,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吼砂,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡逆航,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了渔肩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片因俐。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出抹剩,到底是詐尸還是另有隱情撑帖,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布澳眷,位于F島的核電站胡嘿,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏钳踊。R本人自食惡果不足惜衷敌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拓瞪。 院中可真熱鬧缴罗,春花似錦、人聲如沸祭埂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)沟堡。三九已至侧但,卻和暖如春矢空,著一層夾襖步出監(jiān)牢的瞬間航罗,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工屁药, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留粥血,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓酿箭,卻偏偏與公主長(zhǎng)得像复亏,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子缭嫡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容