1. 程式人生 > >Java類和對象

Java類和對象

一個 ... 雙向關聯 球隊 第一步 學院 ring 公司 優點

***************************第六章 類和對象*********************************

***************************面向過程和面向對象的區別**************************


一.面向過程

c語言


關心是how 怎麽做 即具體的實現步驟、實現細節


需求: 把大象裝冰箱.....


第一步 把冰箱門打開

第二步: 把大象裝冰箱

第三步: 把冰箱門關上


二.面向對象

關心的是 what 做什麽 使用者只需要關心做什麽即可

至於怎麽做封裝到方法中,由類的設計者關心,方法本身是面向過程的..


1. 先設計一個類 Person 人

行為(方法):把大象裝冰箱


2.創建對象

Person p = new Person();


3. 調用對象的方法

p.把大象裝冰箱();


面向對象語言的好處:

可讀性強、可維護性強,能夠應對大型軟件的需要 解決軟件危機問題


軟件危機: 隨著項目的不斷壯大,使用面向過程語言開發的程序,越來越臃腫、越來越
難維護,造成工期一拖再拖、甚至根本無法完成的情況叫做軟件危機...


***************************面向對象的設計思想**************************

模擬現實世界 這樣的好處是讓編程更加容易、更好理解

面向對象貼近於人的思維...


面向過程更貼近於計算機的思維


一個程序就是一個世界!

***************************類和對象的概念**************************


現實世界 編程世界

具體的樹 Tree的對象


具體的車 Car的對象


具體的小狗 Dog的對象


具體的學生

對象: 用來模擬現實世界中的事物....

1.屬性

學生對象的屬性 學號、姓名、性別、專業.....

2.行為

吃飯、學習、考試.....


類: 相同屬性和相同操作的對象的集合.....Student類


一個類可以創建多個對象,創建對象也叫做實例化一個對象


類是對象的(抽象)、是對象的(模板),對象是類的(實例)

**********************UML圖***********************************

UML 統一建模語言 方便程序員交流


一.類圖

UML中使用矩形來表示類圖,分為上中下三部分

上: 類名

中間: 屬性

下面: 行為


對象圖和類圖有什麽區別???


二.對象圖

包含兩部分

1. 上面

對象名: 類名

名稱下面有一個下劃線

2.下面:

屬性=值

註意: 對象圖沒有行為

*********************面向對象的好處(活字印刷 曹操的故事)***************************

面向過程:雕版印刷

面向對象:活字印刷

面向過程------------->面向對象


雕版印刷------------->活字印刷

1.曹操(客戶)

2.大臣(項目經理)

3.工匠(程序猿)

需求1:喝酒唱歌,人生真爽!


需求2: 對酒當歌,人生真爽!!


需求3: 對酒當歌,人生幾何...

面向對象的優點:


一.可復用

類: 每一個活字(喝)

對象: 具體的印到書上的文字..

一個類可以創建多個對象


代碼是可以重復使用的...


類的代碼是可復用的,可以使用這個類創建多個對象...

如果沒有類, 創建多個對象,每個對象的代碼還都要從新寫一遍....


方法也體現了可復用....


二.可維護

容易維護、改動比較少


活字印刷只需要改幾個字就可以了,而雕版印刷需要整個重新制版


三.可擴展


活字印刷可以隨意加字

四.靈活性強


橫著排---->豎著排 雕版印刷還需要重新制版 而活字印刷只需要調整文字的位置就可以了

可讀性強...


**********************使用系統提供的現有類創建對象************************************

類名 對象名 = new 類名();


1. String s = new String("aaa");


2. Integer integerI = new Integer(10);


3. Object obj = new Object();// Object 所有類的父類

----
4. Person p = new Person();


**********************一.類的定義***********************************

class 類名{

//1.屬性(成員變量)

//2.行為(方法)

}

類名使用大駝峰規範...


演示代碼:

package com.chapter6;


/**
* 作者: zhangzy
* 公司: 藍橋軟件學院
* 時間: 2017年6月30日 上午11:07:24
* 功能: 演示類的定義
*/
public class Student {

//1.屬性
int sno;//學號
String name;//姓名
int age;//年齡
//2.行為
public void study(){
System.out.println("我是" + name + ",我在學習");
}

public void exam(){
System.out.println("考試");
}
}


**********************二.創建對象***********************************

Student s = new Student();


**********************三.訪問對象的屬性和調用對象的方法*****************


一.訪問屬性


對象名.屬性名


二.調用方法


1.靜態方法


類名.方法名();


2.實例方法


(1)
類名 對象名 = new 類名();

對象名.方法名();

演示代碼:

package com.chapter6;

public class TestStudent {

public static void main(String[] args) {

// 2.創建對象
// 類名 對象名 = new 類名();
Student s1 = new Student();

// 訪問屬性
s1.sno = 1;
s1.name = "丁澤鵬";
s1.age = 20;

// 調用方法
s1.study();

// 創建另一個學生對象
Student s2 = new Student();

// 訪問屬性
s2.sno = 2;
s2.name = "王鈺龍";
s2.age = 21;

// 調用方法
s2.study();
}
}

***************************封裝性(面向對象的三大特性之一)*********************************


面向對象的三大特性:

1.封裝

2.多態

3.繼承


一門語言至少需要擁有以上三種特性,才可以稱為面向對象的語言...

封裝:

1. 封裝成類

把屬性和方法 放到 類裏面,叫做封裝成一個類


2. 封裝成方法


把若幹句代碼 放到方法中,封裝成方法

良好的封裝


1.對於屬性而言

需要使用private來修飾屬性,為了保證信息的安全和隱蔽


private 私有的 只有本類可以訪問


如果不加private 別人可以隨意的修改或訪問你的屬性,顯然不安全,比如別人隨意修改你的姓名、年齡、甚至
是性別..


2.對於方法而言

要使用public 來修飾


public 公有的 任何人都可以使用


定義出方法來 一般是讓別人使用的 為了讓別人使用 需要使用public來修飾

************************對象(類)之間的四種關系****************************

對象是用來模擬現實世界中的事物,現實世界中 事物之間有著千絲萬縷的聯系


為了模擬事物之間的關系,對象之間肯定也有關系


一.關聯關系

用來模擬對象之間 最基本的聯系、它是一種可以互相訪問的關系


老師----------學生


*****方向性

1. 單向關聯


老師---------->學生


2. 雙向關聯


老師----------學生


*****多重性

1:1 一對一

人:身份證 學生: 學號 一個人: 老婆


1:M 一對多


學校:學生

公司:職員

老師:學生(藍橋)


M:N 多對多


學生:課程


老師:學生(在學校裏)

************************關聯的兩個特例: 組合和聚合 has a****************************


整體 has a 部分

籃球隊 has a 球員

共同點:


都是整體和部分之間的關系...

區別:


1. 聚合


部分可以屬於多個整體, 部分和整體之間關系不是特別緊密,部分和整體的生命周期不一致

一個人既可以參加籃球隊、又可以參加足球隊....


學生既屬於藍橋這個班級、又屬於自己學校的班級....

空心菱形表示,空心菱形所在位置是整體

2. 組合


部分只能屬於一個整體,部分和整體的關系比較緊密, 部分消失了整體也消失了,它們的生命周期是一致的..

四肢(心臟)和人、 發動機和汽車

實心菱形表示,實心菱形所在位置是整體


************************二.繼承關系 is a***************************


一般和特殊之間的關系


實現+ 空心三角 表示繼承關系


************************三.實現關系 ***************************


實現一組規範....


學生規範

教師規範

廚師規範


實現了這組規範就可以稱為廚師....


UML中 使用 虛線 + 空心三角 表示 實現表示

************************四.依賴關系 ***************************

類A - - - - - - - - >類B


當類B變了,類A也跟著變, 叫做類A依賴於類B

學生- - - - - - - - - >父母


筆記本的工作 - - - - - - - > 屏幕

Java類和對象