1. 程式人生 > >Java面向對象類與對象整理

Java面向對象類與對象整理

number 定義 分享圖片 java img 了解 復雜 語句 2.3

第一章 面向對象:

1.1 什麽是面向過程:

遇到某件事的時候,思考 “我該怎麽做”然後一步一步實現的過程

1.2 什麽是面向對象:

遇到某件事的時候,思考“我該讓誰來做”,“誰”就是對象,他們怎麽做是他們自己的事,最後一群對象結合起來做好一件事就行

1.3 面向對象舉例

筆記本案例:

  1. 面向過程:

買一臺組裝電腦,先去網上找需要買那些零部件,然後找配置,然後在網上找零部件,價格和配置都合適,在購買完然後去電腦店去組裝,然後在旁邊監督,在裝上系統回家

  1. 面向對象:

首先找一個對電腦硬件很了解的人,讓他幫我們查看零部件和配置,然後找好零部件,購買然後讓他現場監督,裝上系統然後打電話給你,拿電腦回家

1.4 面向對象思維方式的好處

  1. 是一種更符合人們思考習慣的思維
  2. 面向過程更多的體現的是執行者,面向對象中更多的體現是指揮者
  3. 將復雜的問題簡單化

第二章 類與對象

2.1對象在需求中的使

案例解析:

大象裝進冰箱

需求:大象裝進冰箱裏

對象:大象、冰箱

步驟:

  1. 打開冰箱門
  2. 放進大象去
  3. 關閉冰箱門

打開、裝、關閉都是冰箱的功能

大象描述:

Class 大象{

}

冰箱描述:

Class冰箱{

Void 打開{}

Void 存儲(大象){ }

Void 關閉

}

當把具體的事物描述清楚之後,然後使用這些具體的事物,Java使用具體的事物,需要通過new 關鍵字來創建事物的具體實例

總結:

  1. 先按照名詞提煉問題領域中的對象
  2. 對對象進行描述,明確對象中應該具備的屬性和功能
  3. 通過new 的方式就可以創建該事物的具體對象
  4. 通過該對象調用它以後的方法

2.2對象在代碼中的體現

分析:

事物的特點(屬性):

顏色。

輪胎個數。

事物的(功能):

運行。

屬性就是變量,就是方法

  1. 成員屬性:

在代碼中的體現就是成員變量

  1. 成員功能:

在代碼中的體現就是成員方法

2.3對象的內存圖解

小汽車案例

package com.oracle.demo06;

public class Car {

//成員變量

String color;

int number;

//成員方法

public void run(){

System.out.println("顏色為:"+color+","+number+"個輪胎");

}

}

//測試類

package com.oracle.demo06;

public class Test {

public static void main(String[] args) {

//創建對象

Car c=new Car();

//給成員變量賦值

c.color="紫色";

c.number=4;

//調用成員方法

c.run();

}

}

技術分享圖片

2.4類和對象的區別

  1. 類:

是對某一類事物的事物的抽象描述

  1. 對象:

用於表示實現中該類事物的個體

2.5局部變量和成員變量區別

區別一:定義的位置不同

定義在類中的變量稱為成員變量

定義在方法中或者{}語句裏面的變量稱為局部變量

區別二:內存中的位置不同

成員變量存儲在堆內存的對象中

局部變量存儲在棧內存的方法中

區別三:生命周期不同

成員變量隨著對象的出現而出現在堆中,隨著對象方法的消失而從堆中消失

局部變量隨著方法的運行而出現在棧中,隨著方法的彈棧而消失

區別四:初始化不同

成員變量因為在堆內存中,所有默認的初始化值

局部變量沒有默認的初始化值,必須手動給其賦值才可以使用

2.6基本類型和引用類型作為參數傳遞

基本數據類型參數傳遞:

package com.oracle.demo01;

public class Demo01 {

public static void main(String[] args) {

int a=1;

method01(a);

System.out.println(a);

}

//基本數據類型傳遞

public static void method01(int a){

a=2;

}

}

技術分享圖片

引用數據類型參數傳遞:

// package com.oracle.demo01;

public class Person {

String name;

int age;

public void speak(){

System.out.println("我叫"+name+",今年"+age+"歲了");

}

}

package com.oracle.demo01;

public class Demo01 {

public static void main(String[] args) {

//引用數據類型傳遞-- 對象

//創建對象

Person p=new Person();

//給變量賦值

p.name="欣欣";

p.age=24;

//調用method方法

methd02(p);

//調用p變量中的speak方法

p.speak();

}

//引用數據類型傳遞--對象

public static void methd02(Person p){

p.name="花花" ;

p.age=18;

}

}

技術分享圖片

兩個引用指向同一個對象,不管是哪一個引用改變了引用的所指向的對象的中的值,其他引用再次使用都是改變後的值。

Java面向對象類與對象整理