java面向對象的三大特征是6_Java面向對象的三大特征

面向對象的本質:以類的方式組織代碼,以對象的方式組織數據。

面向對象三大特性:封裝?繼承?多態

封裝:

概念:

隱藏對象內部的復雜性,只對外公開簡單的接口。便于外界調用,從而提高系統的可擴展性,可維護性。

程序設計要求“高內聚,低耦合”。

實現:

使用訪問控制符,實現封裝:

private:僅同一個類里可以看到

default:同一個類和同一個包中可以看到

protected:同一個類、同一個包和子類中可以看到(不同包的子類也可以看到)

public:公開,所有類都可以看到

要點:

類的屬性的處理:一般使用private(除非本屬性確定會讓子類繼承)。

提供相應的get/set方法來訪問相關屬性,從而提供對屬性的讀取操作。

===================================================================

繼承:

概念:

繼承是類與類之間的一種關系。

類是對對象的抽象,繼承是對某一批類的抽象。

子類繼承父類,可以得到父類的全部屬性和方法(除了父類的構造方法)。

子類是父類的擴展,提高代碼的復用性。

java中只有單繼承,沒有多繼承,多繼承可以通過接口來實現。

extends:

在子類加上extends關鍵字繼承相應的父類。

final:

final修飾類,則該類不可被繼承。

方法的重寫:

在子類中可以根據需要對從父類中繼承來的方法進行重寫。

重寫方法必須和被重寫方法具有相同方法名稱、參數列表和返回類型。

重寫方法不能使用比被重寫方法更嚴格的訪問權限。(因為:父類引用指向子類對象)

===================================================================

多態:

概念:

多態就是對象的多種形態

多態性可以用來實現動態聯編,程序的最終狀態只有在執行過程中才被決定而并非在編譯期間就決定了。

好處:

提高系統的靈活性和擴展性。

引用變量的兩種類型:

編譯時類型(模糊一點,一般是一個父類)由聲明時的類型決定。

運行時類型(運行時,具體是哪個子類就是哪個子類)由實際對應的對象類型決定。

多態的存在要有三個必要條件:

要有繼承,要有方法重寫,父類引用指向子類對象。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/372209.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/372209.shtml
英文地址,請注明出處:http://en.pswp.cn/news/372209.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Tornado(一)

Tornado 特點 Tornado是一個用Python寫的相對簡單的、不設障礙的Web服務器架構,用以處理上萬的同時的連接口,讓實時的Web服務通暢起來。雖然跟現在的一些用Python寫的Web架構相似,比如Django,但Tornado更注重速度,能夠…

Android下Opengl ES實現單屏幕雙眼顯示

http://blog.csdn.net/u011371324/article/details/68946779 默認情況下,Opengl ES使用系統提供的幀緩沖區作為繪圖表面,一般情況下,如果只在屏幕的表面繪圖的話,系統提供的默認幀緩沖區很高效,但是很多應用程序需要渲…

Oracle Service Bus –線程阻塞案例研究

本案例研究描述了在AIX 6.1和IBM Java VM 1.6上運行的Oracle Service Bus 11g遇到的線程阻塞問題的完整根本原因分析過程。 本文也是您提高線程轉儲分析技能的絕佳機會,我強烈建議您學習并正確理解以下分析方法。 與過早的中間件(Weblogic)重…

java 可以重載等于號碼_Java面試之Java基礎4——重載與重寫的區別

目錄重載與重寫的概念重載與重寫的區別重載與重寫的總結構造器是否能被重寫override為什么函數不能根據返回類型來區分重載重載與重寫的概念重載:同樣一個方法可以根據輸入參數列表的不同,做出不同的處理。普通方法和構造器方法都能夠重載。方法重載&…

二維數組、多維數組

二維數組: 定義二維數組 int[,] myArray new int[幾個一維數組,數組中的個數]; 數組可以具有多個維度。例如,下列聲明創建一個四行兩列的二維數組(可以理解為4個1維數組,數組中包含2個元素): int[,] myArray new int[4,2]; int[…

一張大圖片有多個小圖片

這個頁面也是我看到別人的寫的,感覺不錯,就自己留下了為了以后自己可以容易找到,也希望可以方便到別人。 寫這個頁面 需要注意的是: 1.寫每一個小圖片的位置時候,要用id,這樣等級就高了,不然不起作用。 2.因…

java中如何調用dal接口案例_關于Java:接口的目的

好吧,我認為接口是一種強制對象實現一定數量功能的方法,而不必使用繼承。有點像合同。我半明白他們的意思。但是,如果界面中的所有內容都是:public interface animal{void eat(object food);}它沒有這樣的實現,那么無論…

Android Studio混淆

這一篇說一下Android Studio的代碼混淆: 第一步:要想使混淆生效,要修改項目(App)下的build.gradle一處內容:minifyEnabled 的值 設置為true,當前項目就可以使用混淆了。 apply plugin: com.and…

內存訪問模式很重要

在高性能計算中,通常會說高速緩存未命中的代價是算法的最大性能損失。 多年來,處理器速度的提高大大超過了延遲到主內存的速度。 通過更寬的多通道總線,到主內存的帶寬已大大增加,但是延遲并未顯著減少。 為了掩蓋這種延遲&#x…

上傳頭像將光標去掉

οnfοcus"this.blur();" unselectable"on" οnfοcus"this.blur();"支持火狐,谷歌等主流瀏覽器 unselectable支持ie瀏覽器轉載于:https://www.cnblogs.com/jar-gon/p/6841239.html

java底層 文件操作_JAVA的文件操作【轉】

11.3 I/O類使用由于在IO操作中,需要使用的數據源有很多,作為一個IO技術的初學者,從讀寫文件開始學習IO技術是一個比較好的選擇。因為文件是一種常見的數據源,而且讀寫文件也是程序員進行IO編程的一個基本能力。本章IO類的使用就從…

JAVA多線程,真的能提高效率嗎

舉個栗子 比如挖一個隧道,有2種開工方法1、只在山的一頭挖,直至挖到山的另一頭,從而打通隧道,這可以看成是單線程 2、在山的兩頭挖,同時開工,最后在山的中間接通,從而打通隧道,這感覺…

Java 8:測試Lambda水

Java 8大約有一年的時間了,它具有我非常期待的語言功能: Lambda Expression 。 令人遺憾的是,另一個重要功能Java平臺模塊已延遲到Java9。但是,將lambda表達式(或閉包)添加到該語言中將使Java編程變得更好。…

java定義js函數_JS中可以先使用函數,然后再定義.

首先要說明的,下面這種方式是對的,雖然不知道為什么,很奇怪為什么可以先使用,再定義,希望有了解的人可以給個說法.hello(www.openj.cn);function hello(name){alert("hello " name)};本文首發于 http://blog.openj.cn下面的這種定義函數方式,對于寫一些比較復雜的代碼…

基于閥值的工作流引擎設計

最近在做工作流處理流程部分的工作,順便研究了一下工作流引擎的一些設計理念和原理。由于以前接觸過人工智能神經網絡的一些東西,發現工作流引擎和神經網絡還是頗有一些相似之處,都是滿足一定的條件下向下一個節點傳遞。在神經網絡的神經元中…

Git之安裝管理

1.Git安裝部署 Git是分布式的版本控制系統,我們只要有了一個原始Git版本倉庫,就可以讓其他主機克隆走這個原始版本倉庫,從而使得一個Git版本倉庫可以被同時分布到不同的主機之上,并且每臺主機的版本庫都是一樣的,沒有主…

Java執行程序服務類型

ExecutorService功能是Java 5附帶的。它擴展了Executor接口,并提供了線程池功能來執行異步簡短任務。 使用Java 6提供的ExecutorService接口有五種異步執行任務的方法。 ExecutorService execService Executors.newCachedThreadPool(); 這…

MySQL的主動優化和被動優化_MySQL“被動”性能優化匯總!

年少不知優化苦,遇坑方知優化難。 ——村口王大爺本文內容導圖如下:我之前有很多文章都在講性能優化的問題,比如下面這些:當然,本篇也是關于性能優化的,那性能優化就應該一把梭子嗎?還是要符合一…

python2

一、管理庫的安裝 安裝pip 提示報錯:安裝pip提示No module named setuptools Windows環境下Python默認是沒有安裝setuptools這個模塊的,這也是一個第三方模塊。下載地址為http://pypi.python.org/pypi/setuptools。下載后直接運行ez_setup.py 參考地址&…

Java Mybatis

Mybatis轉載于:https://www.cnblogs.com/leading-index/p/6853031.html