Java語(yǔ)言——類

在Java語(yǔ)言中經(jīng)常提到類和對(duì)象望蜡,實(shí)質(zhì)上可以將類看作是對(duì)象的載體末誓,它定義了對(duì)象所具有的功能。面向?qū)ο蟪绦蛟O(shè)計(jì)具有以下特點(diǎn):封裝性超陆、繼承性和多態(tài)性牺弹。


Java語(yǔ)言

一、類

1.成員變量

在Java中對(duì)象的屬性也稱為成員變量。成員變量聲明在類體中例驹,局部變量聲明在方法體中捐韩。示例代碼如下:

package com.example;

public class Book {
   private String name;//定義一個(gè)String型的成員變量
   public String getName(){//定義一個(gè)getName()方法
       int id=0;//局部變量
       setName("java");//調(diào)用類中其他方法
       return id+this.name;//設(shè)置方法返回值
   }
   private void setName(String name){
       this.name=name;
   }
   public Book getBook(){
       return this;//返回Book類引用
   }
}

2.成員方法

在Java語(yǔ)言中使用成員方法對(duì)應(yīng)于類對(duì)象的行為。上述代碼為例鹃锈,Book類中包含了getName()和setName()兩個(gè)方法荤胁。定義成員方法的語(yǔ)法格式如下:

權(quán)限修飾符  返回值類型  方法名(參數(shù)類型  參數(shù)名){
              ...//方法體
             return  返回值;
}

一個(gè)成員方法可以有參數(shù)屎债,這個(gè)參數(shù)可以是對(duì)象也可以是基本數(shù)據(jù)類型的變量仅政,同時(shí)成員方法有返回值和不返回任何值的選擇,如果方法需要返回值可以在方法體中使用return關(guān)鍵字盆驹,使用這個(gè)關(guān)鍵字后圆丹,方法的執(zhí)行將被終止。在成員方法中可以調(diào)用其他成員方法和類成員變量躯喇。如果一個(gè)方法中含有與成員變量同名的局部變量辫封,則方法中對(duì)這個(gè)變量的訪問(wèn)以局部變量進(jìn)行。

3.權(quán)限修飾符

Java中的權(quán)限修飾符主要包括private廉丽、public和protected倦微,這些修飾符控制著對(duì)類和類的成員變量以及成員方法的訪問(wèn)。如下圖所示:

Java語(yǔ)言中的修飾符權(quán)限

如果一個(gè)類的成員變量或成員方法被修飾為private正压,則該成員變量只能在本類中被使用欣福,在子類中是不可見的,并且對(duì)其他包的類也是不可見的焦履。如果將類的成員變量和成員方法的訪問(wèn)權(quán)限設(shè)置為public拓劝,那么除了可以在本類使用這些數(shù)據(jù)之外,還可以在子類和其他包的類中使用嘉裤。如果一個(gè)類的訪問(wèn)權(quán)限被設(shè)置為private郑临,這個(gè)類將隱藏其內(nèi)的所有數(shù)據(jù),以免用戶直接訪問(wèn)它屑宠。

4.局部變量

如果在成員方法中定義一個(gè)變量牧抵,那么這個(gè)變量被稱為局部變量。如下代碼所示侨把,getName()方法中的id變量即為局部變量。實(shí)際上方法中的形參也可以作為一個(gè)局部變量妹孙,如在定義setName(String name)方法時(shí)秋柄,String name這個(gè)形參就被看作是局部變量。局部變量是在方法被執(zhí)行時(shí)創(chuàng)建蠢正,在方法執(zhí)行結(jié)束時(shí)銷毀骇笔。局部變量在使用時(shí)必須進(jìn)行賦值操作或被初始化,否則會(huì)出現(xiàn)編譯錯(cuò)誤。

   public String getName(){//定義一個(gè)getName()方法
       int id=0;//局部變量
       setName("java");//調(diào)用類中其他方法
       return id+this.name;//設(shè)置方法返回值
   }

5.局部變量的有效范圍

局部變量的有效范圍又可以稱為變量的作用域笨触,局部變量的有效范圍從該變量的聲明開始到該變量的結(jié)束為止懦傍。如下圖所示:

局部變量的作用范圍

6.this關(guān)鍵字

  private void setName(String name){
       this.name=name;
   }

在上述代碼中,成員變量與setName()方法中的形參的名稱相同芦劣,都為name粗俱。在Java語(yǔ)言中,規(guī)定使用this關(guān)鍵字來(lái)代表本類對(duì)象的引用虚吟,this關(guān)鍵字被隱式的用于引用對(duì)象的成員變量和方法寸认。this可以調(diào)用成員變量和成員方法,但在Java語(yǔ)言中最常規(guī)的調(diào)用方式是使用“對(duì)象.成員變量”或“對(duì)象.成員方法”進(jìn)行調(diào)用串慰。

二偏塞、類的構(gòu)造方法

構(gòu)造方法是一個(gè)與類同名的方法,對(duì)象的創(chuàng)建就是通過(guò)構(gòu)造方法完成的邦鲫。每當(dāng)類實(shí)例化一個(gè)對(duì)象時(shí)灸叼,類都會(huì)自動(dòng)調(diào)用構(gòu)造方法。構(gòu)造方法的特點(diǎn)如下:
(1)構(gòu)造方法沒(méi)有返回值庆捺。
(2)構(gòu)造方法的名稱要與本類的名稱相同古今。
構(gòu)造方法的定義語(yǔ)法格式如下:

public book(){
  //...構(gòu)造方法體
}

public:構(gòu)造方法修飾符。
book:構(gòu)造方法的名稱疼燥。
在構(gòu)造方法中可以為成員變量賦值沧卢,這樣當(dāng)實(shí)例化一個(gè)本類對(duì)象時(shí),相應(yīng)的成員變量也將被賦值醉者。如果類中沒(méi)有明確定義構(gòu)造方法但狭,編譯器會(huì)自動(dòng)創(chuàng)建一個(gè)不帶參數(shù)的默認(rèn)構(gòu)造方法。

三撬即、靜態(tài)變量立磁、常量和方法

由static修飾的變量、常量和方法被稱作靜態(tài)變量剥槐、常量和方法唱歧。被聲明為static的變量、常量和方法被稱為靜態(tài)成員粒竖。靜態(tài)成員屬于類所有颅崩,區(qū)別于個(gè)別對(duì)象,可以在本類或其他類使用類名和“.”運(yùn)算符調(diào)用靜態(tài)成員蕊苗。語(yǔ)法如下:

類名.靜態(tài)類成員

示例代碼如下:

package com.example;

public class StaticTest {
 static double PI=3.1415;//在類中定義靜態(tài)常量
 static int id;//在類中定義靜態(tài)變量
 public static void method1(){//在類中定義靜態(tài)方法
     //doSomething
 }
 public void method2(){//在類中定義非靜態(tài)方法
     System.out.println(StaticTest.PI);//調(diào)用靜態(tài)常量
     System.out.println(StaticTest.id);//調(diào)用靜態(tài)變量
     StaticTest.method1();//調(diào)用靜態(tài)方法
 }
}

在Java語(yǔ)言中對(duì)靜態(tài)方法有兩點(diǎn)規(guī)定:
(1)在靜態(tài)方法中不可以使用this關(guān)鍵字沿后。
(2)在靜態(tài)方法中不可以直接調(diào)用非靜態(tài)方法。

四朽砰、類的主方法

主方法是類的入口點(diǎn)尖滚,它定義了程序從何處開始喉刘;主方法提供對(duì)程序流向的控制,Java編譯器通過(guò)主方法來(lái)執(zhí)行程序漆弄。主方法的語(yǔ)法如下:

public static void main(String[] args){
//方法體
}

主方法具有以下特性:
(1)主方法是靜態(tài)的睦裳,所以如要直接在主方法中調(diào)用其他方法,那該方法必須也是靜態(tài)的撼唾。
(2)主方法沒(méi)有返回值廉邑。
(3)主方法的形參為數(shù)組。其中args[0]~args[n]分別代表程序的第一個(gè)參數(shù)到第n個(gè)參數(shù)券坞,可以使用args.length獲取參數(shù)的個(gè)數(shù)鬓催。

學(xué)習(xí)是一件很快樂(lè)的事,這種快樂(lè)來(lái)自于你的思考恨锚。完成一項(xiàng)學(xué)習(xí)任務(wù)固然重要宇驾,但更重要的是在完成的過(guò)程中學(xué)到了什么,掌握了什么猴伶,遇到一些什么問(wèn)題课舍,為什么會(huì)出現(xiàn)這種問(wèn)題,根源是什么他挎,都有哪些解決方案筝尾,什么樣的情況適合這個(gè)方案。只有在不斷的思考办桨,你的能力才會(huì)有所提升筹淫!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市呢撞,隨后出現(xiàn)的幾起案子损姜,更是在濱河造成了極大的恐慌,老刑警劉巖殊霞,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件摧阅,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡绷蹲,警方通過(guò)查閱死者的電腦和手機(jī)棒卷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)祝钢,“玉大人比规,你說(shuō)我怎么就攤上這事±褂ⅲ” “怎么了蜒什?”我有些...
    開封第一講書人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)龄章。 經(jīng)常有香客問(wèn)我吃谣,道長(zhǎng),這世上最難降的妖魔是什么做裙? 我笑而不...
    開封第一講書人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任岗憋,我火速辦了婚禮,結(jié)果婚禮上锚贱,老公的妹妹穿的比我還像新娘仔戈。我一直安慰自己,他們只是感情好拧廊,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開白布监徘。 她就那樣靜靜地躺著,像睡著了一般吧碾。 火紅的嫁衣襯著肌膚如雪凰盔。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,268評(píng)論 1 309
  • 那天倦春,我揣著相機(jī)與錄音户敬,去河邊找鬼。 笑死睁本,一個(gè)胖子當(dāng)著我的面吹牛尿庐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播呢堰,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼抄瑟,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了枉疼?” 一聲冷哼從身側(cè)響起皮假,我...
    開封第一講書人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎往衷,沒(méi)想到半個(gè)月后钞翔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡席舍,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年布轿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片来颤。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡汰扭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出福铅,到底是詐尸還是另有隱情萝毛,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布滑黔,位于F島的核電站笆包,受9級(jí)特大地震影響环揽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜庵佣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一歉胶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧巴粪,春花似錦通今、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至派哲,卻和暖如春臼氨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背狮辽。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工一也, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人喉脖。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓椰苟,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親树叽。 傳聞我的和親對(duì)象是個(gè)殘疾皇子舆蝴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

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

  • 一:java概述:1,JDK:Java Development Kit题诵,java的開發(fā)和運(yùn)行環(huán)境洁仗,java的開發(fā)工...
    ZaneInTheSun閱讀 2,661評(píng)論 0 11
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法性锭,內(nèi)部類的語(yǔ)法赠潦,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法草冈,線程的語(yǔ)...
    子非魚_t_閱讀 31,664評(píng)論 18 399
  • (一)Java部分 1她奥、列舉出JAVA中6個(gè)比較常用的包【天威誠(chéng)信面試題】 【參考答案】 java.lang;ja...
    獨(dú)云閱讀 7,114評(píng)論 0 62
  • 以前讀書,看到項(xiàng)羽那句“富貴不歸故鄉(xiāng)怎棱,如錦衣夜行哩俭,誰(shuí)人知之者”總和其他人一般嗤笑著他的短視好面子,遠(yuǎn)不如太祖 “埋...
    倚劍_聽雪閱讀 524評(píng)論 0 0
  • 最近過(guò)的還好嗎拳恋? 今天講的故事有關(guān)于男神凡资,百度百科告訴我,男神是一種可望而不可及的存在谬运。而我的身邊隙赁,有很多的...
    森森iii閱讀 351評(píng)論 0 0