1. 程式人生 > >java面向物件程式設計總結

java面向物件程式設計總結

系統學習面嚮物件語言設計,java是一門完全面向物件設計性語言,就連最基本的基本型別java自身也都包裝了相應的型別與方法,那麼什麼是類,什麼是物件,通俗點說

類就是物件的模板,就像工廠裡面的模子,機器比對一種模板製作了一件物品,那麼那件物品就是這個模子(類),對應的一個物件,它有自己的屬性以及自己的方法。說到一個類不可不說的就是他的方法,與屬性,所謂屬性就是類裡面的一些變數或常量,而方法就是物件(類)呼叫這個方法可以做成什麼事情,比如操作類裡面的資料,又比如可以排序啊,又比如可以列印物件啊.....諸如此類的方法林林總總。那麼要學會面向物件,最先接觸的無外乎就是類與物件——方法與屬性。

1>屬性:類就是我們對我們現實生活的事物的抽象,比如雞鴨鵝兔——家禽類 ; 飛機輪船汽車——交通工具類;鉛筆鋼筆圓珠筆——文具類。種種的現實事物都可以抽象成java中的類,而屬性就是實際物件所具備的一些辨識特徵,畢竟每一個物件他們的屬性都不同,即使相同在java裡面也是不同的,因為畢竟也是不同的物件,不過你重寫了equals方法那就另當別論了。關於屬性有幾點需要注意的,

第一就是屬性的初始化順序,首先當一個類被載入的時候,第一位初始化的就是他們的成員屬性,當然有靜態成員屬性,那麼普通成員屬性就只能屈居第二了,其次就是構造器—建構函式,與C++相似java也有建構函式用於初始化變數,但是java不用像c++一樣手動呼叫解構函式,java有自己的系統垃圾回收機制.....最後就是函式,函式則是要等到物件或者類去呼叫他們的時候他們才會載入裡面的屬性變數....

第二是關於屬性的繼承的,對於子類沒有隱藏父類屬性的繼承,到沒有什麼可以強調的;若是子類中將父類屬性給隱藏了,那麼就需要注意一下,當我們用子類物件給父類引用賦值的時候了,子類若是給父類引用賦值,若是存在屬性的隱藏的話那麼,子類本身自身就存在兩種狀態一種是自身的狀態,另外一種就是父類隱藏屬性的狀態,這種隱藏屬性在子類中只能用super.屬性名可以看到,或者是將子類物件強轉成父類物件後利用父類的函式可以訪問或那時候直接訪問

第三 就是一些關於,靜態屬性(類屬性),泛型屬性等等

2>方法:方法就是類裡面一些,能讓屬性具有活力的催化劑吧,沒有方法一個類即使有再多的屬性,也沒有用,因為沒有辦法利用它們去做事呀,對於方法最多的應該就是java的封裝特性,我們可以把我們自己常用的方法,通過一個類,幾個函式封裝起來,便於以後利用。這裡要說一下的就是get set方法,這兩個方法可以靈活的得到一些物件的屬性,以及設定物件屬性。

............................................每天的學習總結

4.7
繼承
1.子類繼承父類的全部屬性,全部方法,但是私有變數和私有方法,子類的物件是不能直接呼叫到的。
2.子類的非私有屬性(變數)直接被繼承下來而且可以被使用賦值,在本類中賦值或者在外部通過物件用建構函式賦值。




4.13泛型(萬用字元)
學習泛型主要是為了避免我們在程式設計過程中,頻繁的向上向下轉型犯一些過失性錯誤,而編譯器又不能檢測出來的錯誤。
1>泛型類  class X<T1,T2,T3....>這裡的Ti就是一些在類中可能出現的型別,個數由你而定.
定義好了泛型類以後 就是初始化類裡面的屬性,有兩種方式去初始化,第一就是利用成員函式set方法一一賦值,
第二就是 我們的建構函式,用第一方法的時候沒問題,但是用構造方法的時候,new後面的X 也需要跟著<泛型>,
不然型別會不識別,你可以任意放資料,不會編譯報錯,但是執行一定有問題.




4.14異常類
try catch finally 其中finally可以加可以不加,1>  對於系統自帶的異常,我們可以手動丟擲throw,手動解決try-catch,若是丟擲後
沒有解決的,那麼交給上層呼叫者函式解決,若是上層就是main的話,系統直接就處理了;若是沒有,那麼看上層函式有沒有處理這個異常的
方法,即看有沒有catch捕獲到該異常類,若是沒有這個類那麼就交給再上層,這樣依次上交,判定,一直到main函式,最終交給系統處理。


2>對於我們自己寫的MyException() 自己寫的異常類  就不能像系統的異常那麼任性了,只有我們自己在每一層函式中預測,它可能發生的異常
若是你不手動用throw 丟擲的話,系統是不會檢測的,所以一般自己手寫的異常,是需要判斷性語句的,那對於手寫的自己的異常類一定是繼承
系統的Exception,你可以自己寫構造方法,自己重構tostring方法(列印的就是你自己認為的異常)...然後throw丟擲之後,就是處理了,若是該層
語句層裡面有try catch並且能捕獲到這個異常,那麼程式就在這一層處理了,然後結束了跳轉直接執行finally語句內容....若是沒有處理的語句塊
那麼你就必須在函式頭 申明一下MyException 證明我可能出現異常但是不一定在這裡面處理,有處理語句就在這裡處理,沒有的話就交給上層程式碼塊
處理,然後又是遞迴....這就是系統自帶,和自己自定義異常的丟擲-處理-申明的區別。我的理解就是系統自帶的異常和java包裝類自動裝箱,自動
拆箱是一樣的,你手寫是對的,不寫也對..捕獲到了能處理自己處理,不能處理最後拋給系統.....但是自定義的就不一樣了,你一旦throw出來了
你就必須有一個throws申明或者 try catch二者之一來處理,不然不通過....不能丟擲後不處理或者又不在本層函式的頭部申明,那就是錯誤。


3>異常丟失
利用異常鏈


4.13  io知識
第一點:讀取一個檔案裡面的資料,FileReader類  建立一個物件 p,呼叫裡面的read()方法,一般用一個char[]陣列裝裡面的字元,
p.read(a)  就能讀出檔案裡面的資料放到char數組裡面,返回值是這個檔案的字元數,其中換行和回車是佔兩個字元---->這裡就講一下
怎麼把讀取到的回車和換行去掉  利用正則表示式  Pattern類 中的   Pattern p = Pattern.compile("\r|\n"),Matcher m = p.matcher(str);
String str1 = m.replaceAll("");這樣就把回車給去掉了...
第二點:讀取檔案用FileReader的子類 BufferedReader ,先建立FileReader 物件a(對應路徑),再建立BufferedReader
 物件b(利用a的基礎上)...

相關推薦

java面向物件程式設計總結

系統學習面嚮物件語言設計,java是一門完全面向物件設計性語言,就連最基本的基本型別java自身也都包裝了相應的型別與方法,那麼什麼是類,什麼是物件,通俗點說 類就是物件的模板,就像工廠裡面的模子,機器比對一種模板製作了一件物品,那麼那件物品就是這個模子(類),對應的一個物

Java面向物件程式設計的知識點(封裝、繼承,多型)進行總結

一 封裝 1.面向物件的高階:優化程式設計    封裝:      類中如何定義成員變數?       private   int  num;      概念      語法        3步驟    繼承:減少冗餘程式碼       繼承:一個類(子類)繼承另一個類(父

3.Java面向物件程式設計OOA/OOP/OOD/OOAD()/UML類圖、函數語言程式設計Scala(JVM)---類與物件、封裝繼承多型、構造方法、覆寫/重寫/override

一、緒論 1.面向物件程式設計正規化(C++、Java、Go)------能進行現實生活的抽象。             每個物件都是一個類。類中包含屬性與方法。 OOA:面向物件分析 OOP:面向物件程式設計

JAVA面向物件程式設計之購物車介面的設計與功能的實現

1、小組成員及分工 小組成員 負責工作 蘭澤祥 負責總體介面、Git程式碼庫 吳修恩 負責MVC模式、類名包名的規範化 2、Git 倉庫地址 倉庫地址:https://gitee

Java 面向物件程式設計之多型

轉自:chenssy java提高篇之理解java的三大特性——多型 封裝隱藏了類的內部實現機制,可以在不影響使用的情況下改變類的內部結構,同時也保護了資料。對外界而已它的內部細節是隱藏的,暴露給外界的只是它的訪問方法。 繼承是為了重用父類程式碼。兩個類若存在IS-A的關係就可以使用

Java面向物件程式設計之類和物件

Java程式語言是一種面向物件的程式語言,其特性在於高度的抽象性。那麼,什麼是面向物件呢?面向物件和麵向過程有什麼區別呢?萬物可歸類,什麼是類呢?萬物皆物件,類和物件之間的聯絡是什麼?Java程式的執行需要jvm(Java虛擬機器)的支援,那麼,面向物件程式設計在計算機中怎麼進行記憶體分析;

Java 面向物件程式設計引言

*Java面向物件程式設計是Java語言的核心,Java語言就是面向物件的程式語言,在整個Java語言程式設計過程中,都會涉及到Java程式設計思想,即面向物件思想, 類和物件是 Java 程式的構成核心。圍繞著 Java 類和 Java 物件,有三大基本特性:封裝是 Java 類的編寫規範

Java 面向物件程式設計之四個關鍵字

this,super,static,final是四個常見的類的關鍵字,怎麼樣來描述類的屬性和行為? 如果一個類從另外一個類繼承,我們new這個子類的例項物件的時候,這個子類物件裡面會有一個父類物件。怎麼去引用裡面的父類物件呢?使用super來引用,this指的是當前物件的引用,super是當

Java 面向物件程式設計之介面內部類

介面,內部類,抽象類本質上也是類,是抽象的抽象類,這三種類有各自的特點。 1. 抽象類、 設計與實現的分開 抽象類:定義了抽象方法的類,不能例項化,只能被子類實現 , 用關鍵字abstract修飾。 抽象方法:只定義了方法體,沒有定義內容。 作用:為所有子類建立一

Java面向物件程式設計之三大特性

Java面向物件程式設計作為一種程式設計思想,有三大特性,封裝,繼承,多型。對於一個類而言, 如何封裝 呢?繼承是父類和子類的關係, 繼承關係如何實現的呢?父類和子類繼承時的方法體是怎麼樣的關係呢?多型是多個類之間的關係,類有不同的行為和屬性,其他類也有這樣的方法和屬性,就實現了多型的關係,

java面向物件程式設計以及陣列理解

一、語言的進化史 在計算機語言發展的早期,由於cpu和記憶體的限制,導致說發展很慢。後來由於硬體裝置的革命(即cpu價格的下跌和記憶體數量和容量的上升,記憶體的價格的下跌)和資金的推動(資本家為了提高勞動生產率和剩餘價值),計算機語言開始了高速的進化,從一開始的基本型別到結

java 面向物件程式設計

一直對面向物件程式設計的概念較模糊,今天認真理了一遍,按要求寫了容易理解的小程式模板(PS:內容不重要,關鍵是面向物件的思想,層次等。) 1. 要求 要求此人類必須包含有人的姓名、性別、出生日期等基本屬性(變數)。 要求此人類描述吃飯的方法(函式)和描述睡覺的

JAVA 面向物件程式設計練習(一個回合制的戰鬥遊戲:戰士,騎兵,法師,電腦互相攻擊)

一. 小編有話說 前面一篇文章寫了JAVA面向物件程式設計的思想,本文主要展示關於面向物件程式設計的例項(一個回合制的戰鬥遊戲:戰士,騎兵,法師,電腦互相攻擊),小編的基礎暫時薄弱,如此一來有助於更深入的理解和靈活的運用,以及打下堅實的基礎。 二. 遊戲的要求

c++面向物件程式設計總結(類的使用)

本篇算是學習c++有關類的知識的一些易錯點吧..... 並不是特別詳細 幾點並不關於類的東西 1.函式模板,用虛擬型別來實現模板的功能 #include<iostream> using namespace std; template <typename t>//t為虛擬型別的名字,自

JAVA面向物件程式設計基礎

方法: 1、類似函式 public class Demo { int sum() { return 1+1; } public static void main(String[] args) {

JAVA面向物件程式設計——描述一個人類(有姓名、年齡、生日等屬性),並繼承出子類

前言: 面向物件這個概念在很多語言中都有接觸過,尤其在c++中這個概念就是整個語言的核心。那什麼是面向物件?也許我們對它都有個似懂非懂的概念,但無法完全清晰的理解。本文先大概描述面向物件的概念,再通過一個例子來和大家一起認識學習java面向物件。 一、面向

Java面向物件程式設計思想(一)

宣告:學基礎,在校學生,本文所有內容來自純書本,然後通過自己的理解和參考編寫而來,如有說的不對的地方,歡迎評論指錯!(僅做學習交流) 類和物件的建立 類的建立:(public private protected)+ class + 類名 { <類

Java-面向物件程式設計-三大特性之多型

我們前面已經介紹了面向物件程式設計的三大特性之二,今天就介紹最後一個特性-多型。 什麼叫多型?從字面上理解就是多種形態,即對同一個客體,可以有多種不同的形式。就好像糖一樣,有多種口味,你想吃什麼口味的就可以吃什麼口味。但在程式中,卻不是你想要怎樣就怎樣。更多的

Java面向物件程式設計 java實驗報告第三個

1.   RunYear.java  輸出1900到2000年之間的所有潤年 public class RunYear { public static void main(String[] arg

黑馬程式設計師-java面向物件語法總結

----------------------ASP.Net+Unity開發、.Net培訓、期待與您交流! ----------------------  java是一種面向物件的語言,在java語言的描述下,萬事萬物皆物件。 理解面向物件(OOP): 1,面向物件是相