第1章 類和對象

什么是類和對象

  • 對象:具體的數(shù)據(jù)信息
  • 類:類是模子,確定對象將會擁有的特征(屬性)和行為(方法)
  • 類是對象的類型
  • 具有相同屬性和方法的一組對象的集合
  • 屬性:對象的各種特征
  • 方法:對象執(zhí)行的操作,能干什么
  • 類是抽象的概念,僅僅是模板谬擦。
  • 對象是一個能看得到切距,摸得首的具體實(shí)體

如何定義java中的類

  1. 類的重要性:所有java程序都 以類class為組織單元
  2. 什么是類
    類是模子,確定對象將會擁有的特征(屬性)和行為(方法)
  3. 類的組成
    屬性和方法
  4. 定義一個類的步驟
  • 定義類名
    public class 類名{ 屬性
  • 編寫類的屬性
    定義屬性1的類型 屬性1;
  • 編寫類的方法
    定義方法1
    }

package com.imooc
public class Telephone{
//屬性(成員變量)是什么
float screen;
float cpu;
float mem;
//方法 干什么
void call(){
System.out.println("Telephone有打電話的功能");
}
void sendMessage(){
System.out.println("Telephone有發(fā)短信的功能");
}
}

如何使用java對象

  1. 創(chuàng)建對象
    類名 對象名 = new 類名();
    Telephone phone = new Telephone();
  2. 使用對象
    引用對象的屬性:對象名.屬性
    phone.screen = 5;//給screen屬性賦值5
    引用對象的方法:對象名.方法名()
    phone.sendMessage();//調(diào)用sendMessage方法

成員變量和局部變量

  1. 成員變量
    在類中定義惨远,用來描述對象將要有什么
  2. 局部變量
    在類的方法中定義谜悟,在方法中臨時保存數(shù)據(jù)

區(qū)別

  1. 作用域不同
  • 局部變量限于定義它的方法內(nèi)部
  • 成員變量在整個類內(nèi)部都可見
  1. 初始值不同:會給成員變量一個初始值,不會給局部變量賦予初始值

  2. 在同一個方法中锨络,不允許同名局部變量
    在不同的方法中赌躺,允許有同名的局部變量

  3. 兩類變量同名時,局部變量具有更高優(yōu)先級

方法的構(gòu)造

  1. 使用new+構(gòu)造方法羡儿,創(chuàng)建一個新的對象
  2. 構(gòu)造構(gòu)造方法是定義在JAVA類中的一個用來初始化對象的方法構(gòu)造方法與類同名且沒有返回值

public 構(gòu)造方法以名(){
//初媽化代碼
}

  1. 無參的構(gòu)造方法

main():
Telphone phone = new Telphone();
class Telphone:
public Telphone(){
System.out.println("Telphone構(gòu)造方法執(zhí)行了");
}

  1. 有參構(gòu)造方法

main():
Telphone phone2 = new Telphone(4.0f, 2.0f, 2.0f);
class Telphone:
public Telphone(float newScreen, float newCpu, float newMem){
screen = newScreen;
cpu = newCpu;

mem = newMem;
}

  1. 當(dāng)沒有指定構(gòu)造方法時礼患,系統(tǒng)會自動添加無參的構(gòu)造方法
  2. 當(dāng)有指定的構(gòu)造方法時,無論是有參掠归、無參的構(gòu)造方法缅叠,都不會自動添加無參的構(gòu)造方法
  3. 構(gòu)造方法的重載:方法名相同,但參數(shù) 不同的多個方法虏冻,調(diào)用時會自動根據(jù)不同的參數(shù)選擇相應(yīng)的方法
  4. 構(gòu)造方法不但可以給對象的屬性賦值肤粱,還可以保證給對象的屬性賦一個合理的值

Java中的static使用之靜態(tài)變量

Java 中被 static 修飾的成員稱為靜態(tài)成員或類成員。它屬于整個類所有厨相,而不是某個對象所有领曼,即被類的所有對象所共享。靜態(tài)成員可以使用類名直接訪問蛮穿,也可以使用對象名進(jìn)行訪問庶骄。當(dāng)然,鑒于他作用的特殊性更推薦用類名訪問~~

public class HelloWorld{
//static修飾變量為靜態(tài)變量践磅,所有類的對象共享hobby
static String hobby = "imooc";
public statc void main(String[] args){
//靜態(tài)變量可以直接使用類名來訪問单刁,無需創(chuàng)建類的對象
//HelloWorld hobby = new HellowWorld();
System.out.println("通過類名訪問hobby:"+ HelloWorld.hobby);
//創(chuàng)建類的對象
HelloWorld hello = new HelloWorld();
//使用用對象名來訪問靜態(tài)變量
System.out.println("通過對象名訪問hobby:"+ hello.hooby);
//使用對象名的形式修改靜態(tài)變量的值
hello.hobby = “愛莫課”;
//再次使用類名訪問靜態(tài)變量,值已修改
System.out.println("通過類名訪問hobby:"+HelloWorld.hobby);
}
}

Java中的static使用之靜態(tài)方法

與靜態(tài)變量一樣府适,我們也可以使用 static 修飾方法羔飞,稱為靜態(tài)方法或類方法。其實(shí)之前我們一直寫的 main 方法就是靜態(tài)方法檐春。靜態(tài)方法的使用如:

public class HelloWorld
{
//使用static關(guān)鍵字聲明靜態(tài)方法
public static void print()
{
System.out.println(“歡迎您逻淌,愛幕課");
}
public static void main(String[] args)
{
//直接使用類名調(diào)用確靜態(tài)方法
HelloWorld.pirnt();
//也可以通過對象名調(diào)用,當(dāng)然更推薦使用類名調(diào)用的方式
HelloWorld demo = new HelloWorld();
demo.pring();
}
}

注意:

  • 靜態(tài)方法中可以直接調(diào)用同類中的靜態(tài)成員 疟暖,但不能直接調(diào)用非靜態(tài)成員恍风。

//pulic class HelloWorld
{
String name = "aimue";//非靜態(tài)變量
static String hobby = "imooc";//靜態(tài)變量
//靜態(tài)方法調(diào)用非靜態(tài)變量
public static void print();
{
System.out.println(name);//不能直接調(diào)用非靜態(tài)變量
System.out.println(hobby);//可以直接調(diào)用靜態(tài)變量
}
}

如果希望在靜態(tài)方法中調(diào)用非靜態(tài)變量,可以通過偶創(chuàng)建類的對象,然后能過對象訪問非靜態(tài)變量朋贬。

//在靜態(tài)方法中調(diào)用非靜態(tài)變量
public static void print()
{
//創(chuàng)建類的對象
HelloWorld hello = new HelloWorld();
//通過對象來實(shí)現(xiàn)在靜態(tài)方法中調(diào)用非靜態(tài)變量
System.outpringln(hello.name);
System.out.println(hobby);
}

  • 在普通成員 方法中凯楔,則可以直接訪問同類的非靜態(tài)變量和靜態(tài)變量。

String name = "aimuke";
static String hobby = "imooc";
//普通成員 方法可以直接訪問非靜態(tài)變量和靜態(tài)變量
public void show()
{
System.out.println(name);
System.out.println(hobby);
}

  • 靜態(tài)方法中不能直接調(diào)用非靜態(tài)方法锦募,需要通過對象來訪問非靜態(tài)方法

public void show()
{
System.out.prinln("Welcom to imooc");
}
//靜態(tài)方法
public static void print()
{
System.out.println("歡迎你");
}

public static void main(String[] args)
[
//普通成員方法必須通過對象來調(diào)用
HelloWorld hello = new HelloWorld();
hello.show();
//可以直接調(diào)用靜態(tài)方法
print();
]

Java 中的 static 使用之靜態(tài)初始化塊

java中可心通過初始化塊進(jìn)行數(shù)據(jù)賦值摆屯。
public calss HelloWorld{
String name;//定義一個成員變量
//通過 初始化塊賦值
name = "imooc";
}

在類的聲明中,可以包含多個初始化塊糠亩,當(dāng)創(chuàng)建類的實(shí)例時虐骑,就會依次執(zhí)行這些代碼塊。如果使用static 修飾初始化塊赎线,就稱為靜態(tài)初始化塊廷没。
需要特別注意:靜態(tài)初始化塊只在類加載時執(zhí)行,且只會執(zhí)行一次垂寥,同時靜態(tài)初始化塊只能給靜態(tài)變量賦值颠黎,不能初始化普通的成員變量。

public class HelloWorld
{
int num1;// 聲明變量num1
int num2;//聲明變量num2
static int num3;//
public HelloWorld()
{
//構(gòu)造方法
num1 = 91;
System.out.println("通過構(gòu)造方法為變量num1賦值");
}
{
//初始化塊
num2 = 74;
System.out.println("通過初始化塊給變量num2賦值");
}
Static{
靜態(tài)初始化塊
num3 = 83;
System.out.println("通過 靜態(tài)初始化塊為變量賦值");
}
public static void main(String[] args)
{
HelloWorld hello = new HelloWorld();//創(chuàng)建類的對象hello
System.out.println("num1"+hello.num1);
System.out.println("num1"+hello.num2);
System.out.println("num1"+num1);
HelloWorld hello2 = new HelloWorld();//再創(chuàng)建對象hello2
}
}

執(zhí)行順序:靜態(tài)初始化志初始化滞项,初始化塊初始化狭归,構(gòu)造方法初始化

程序運(yùn)行時靜態(tài)初始化塊最先被執(zhí)行,然后執(zhí)行普通初始化塊文判,最后才執(zhí)行構(gòu)造方法过椎。由于靜態(tài)初始化塊只在類加載時執(zhí)行一次,所以當(dāng)再次創(chuàng)建對象 hello2 時并未執(zhí)行靜態(tài)初始化塊戏仓。

UML

1.UML概念
Unified Modeling Language
又稱統(tǒng)一建模語言或標(biāo)準(zhǔn)建模語言
是一個支持模型化和軟件系統(tǒng)開發(fā)的圖形語言
為軟件開發(fā)的所有階段提供支持
2.UML圖示
UML2.2中一共定義了14種圖示diagrams
3.常用UML圖

  • 用例圖The Use Case Diagram
    用例圖能夠以可視化的方式疚宇,表達(dá)系統(tǒng)如何滿足所收集的業(yè)務(wù)規(guī)則,以及特定的用戶需求等信息
用例圖The Use Case Diagram
  • 序列圖The Sequence Diagram
    序列圖用于按照交互發(fā)生的一系列順序赏殃,顯示對象之間的這些交互
序列圖The Sequence Diagram

-UML類圖


UML類圖

UML類圖敷待,業(yè)務(wù)邏輯和所有支持結(jié)構(gòu)一同被用于定義全部的代碼結(jié)構(gòu)

4.UML建模工具
visio(Microsoft)、Rational(IBM)嗓奢、PowerDesign

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市浑厚,隨后出現(xiàn)的幾起案子股耽,更是在濱河造成了極大的恐慌,老刑警劉巖钳幅,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件物蝙,死亡現(xiàn)場離奇詭異,居然都是意外死亡敢艰,警方通過查閱死者的電腦和手機(jī)诬乞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人震嫉,你說我怎么就攤上這事森瘪。” “怎么了票堵?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵扼睬,是天一觀的道長。 經(jīng)常有香客問我悴势,道長窗宇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任特纤,我火速辦了婚禮军俊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘捧存。我一直安慰自己粪躬,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布矗蕊。 她就那樣靜靜地躺著短蜕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪傻咖。 梳的紋絲不亂的頭發(fā)上朋魔,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天,我揣著相機(jī)與錄音卿操,去河邊找鬼警检。 笑死,一個胖子當(dāng)著我的面吹牛害淤,可吹牛的內(nèi)容都是我干的扇雕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼窥摄,長吁一口氣:“原來是場噩夢啊……” “哼镶奉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起崭放,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤哨苛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后币砂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體建峭,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年决摧,在試婚紗的時候發(fā)現(xiàn)自己被綠了亿蒸。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凑兰。...
    茶點(diǎn)故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖边锁,靈堂內(nèi)的尸體忽然破棺而出姑食,到底是詐尸還是另有隱情,我是刑警寧澤砚蓬,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布矢门,位于F島的核電站,受9級特大地震影響灰蛙,放射性物質(zhì)發(fā)生泄漏祟剔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一摩梧、第九天 我趴在偏房一處隱蔽的房頂上張望物延。 院中可真熱鬧,春花似錦仅父、人聲如沸叛薯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纯出。三九已至走孽,卻和暖如春县貌,著一層夾襖步出監(jiān)牢的瞬間匀油,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工腥椒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留阿宅,地道東北人。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓笼蛛,卻偏偏與公主長得像洒放,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子滨砍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評論 2 355

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法往湿,類相關(guān)的語法,內(nèi)部類的語法惋戏,繼承相關(guān)的語法领追,異常的語法,線程的語...
    子非魚_t_閱讀 31,639評論 18 399
  • 本文主要是慕課網(wǎng) Java入門第二季 這一課程的學(xué)習(xí)筆記日川。 1. 類和對象 1. 類的重要性:所有Java程序都以...
    evansyangs閱讀 330評論 0 1
  • (一)Java部分 1蔓腐、列舉出JAVA中6個比較常用的包【天威誠信面試題】 【參考答案】 java.lang;ja...
    獨(dú)云閱讀 7,107評論 0 62
  • Win7下如何打開DOS控制臺矩乐? a:開始--所有程序--附件--命令提示符 b:開始--搜索程序和文件--cmd...
    逍遙嘆6閱讀 1,599評論 4 12
  • (看書更重要是在閱讀理解的過程中產(chǎn)生各種聯(lián)想龄句。這是閱讀的樂趣回论。) 就書名來說,這本書著手在解決幸福是什么及如何產(chǎn)生...
    你好喬納森閱讀 216評論 0 0