1. 程式人生 > >Java學習之面向物件

Java學習之面向物件

java面向物件的三大特性:封裝、繼承、多型。

封裝

定義

封裝就是將類的資訊隱藏在內部,不允許外部程式直接訪問,而是通過該類提供的方法來實現對隱藏資訊的操作和訪問。

好處

1.只能通過規定的方法訪問資料

2.隱藏類的例項細節,方便修改和實現

步驟

1.修改屬性的可見性,private

2.建立getter/setter方法

3.在getter/setter方法中加入屬性控制語句

作用

管理Java檔案;解決同名檔案衝突

定義 package 包名

使用 import com.test.MyTest,全小寫

this:當前物件

this.屬性 this.方法

內部類

內部類( Inner Class )就是定義在另外一個類裡面的類。與之對應,包含內部類的類被稱為外部類。

作用

1. 內部類提供了更好的封裝,可以把內部類隱藏在外部類之內,不允許同一個包中的其他類訪問該類

2. 內部類的方法可以直接訪問外部類的所有資料,包括私有的資料

3. 內部類所實現的功能使用外部類同樣可以實現,只是有時使用內部類更方便

分類

  • 成員內部類
  • 靜態內部類
  • 方法內部類
  • 匿名內部類

使用

// 建立外部類物件
HelloWorld hello = new HelloWorld();
// 建立內部類物件
Inner i = hello.new Inner();
// 呼叫內部類物件的方法
i.show();

繼承

繼承是類與類的一種關係,是一種 “is a”的關係。

Java中的繼承是單繼承。

class 子類 extends 父類

好處

子類擁有父類的所有屬性和方法,程式碼複用

方法重寫

如果子類對繼承父類的方法不滿意,是可以重寫父類繼承的方法,當呼叫方法時會優先呼叫子類的方法。

返回值型別、方法名、引數型別及個數都要與父類繼承的方法相同,才叫方法的重寫。

final修飾類,則該類不允許被繼承

final修飾方法,則該方法不允許被覆蓋(重寫)

final修飾屬性,則該屬性不會進行隱式的初始化(類的初始化必須要有值)或在構造方法中賦值

final修飾變數,則該變數的值只能賦一次值,即為常量

super關鍵字:在物件的內部使用,代表父類物件

toString()

equals()

多型

物件的多種形態,繼承是多型的實現基礎。

1.引用多型

父類的引用可以指向本類的物件。父類的引用可以指向子類的物件。

Animal obj1 = new Animal();
Animal obj2 = new Dog();

2.方法多型

建立本類物件時,呼叫的方法時本類方法

建立子類物件時,呼叫的方法為子類重寫的方法或繼承的方法。

多型中的引用型別轉換

1.向上型別轉換(隱式轉換),小型別轉為大型別

2.向下型別轉換(強制型別轉換),大型別轉為小型別

3.instanceof運算子,解決轉換問題

抽象類

使用abstract修飾

作用

抽象類規定子類必須有哪些方法,但不關注實現細節

使用規則

1.abstract定義抽象類

2.abstract定義抽象方法,只是宣告,不需要實現

3.包含抽象方法的類是抽象類

4.抽象類中可以包含普通方法,也可以沒有抽象方法

5.抽象類不能直接建立,可以定義引用變數

//Animal.java
public abstract class Animal{
    public abstract void eat();
    public abstract void sleep();
}
// Dog.java
public Dog extends Animal{
    @override
    public void eat(){
        System.out.println("Dog is eating");
    }
    @override
    public void sleep(){
        System.out.println("Dog is sleeping");
    }
}

介面

類是一種具體實現體,而介面定義了某一批所需要遵守的規範,介面不關心這些類的內部資料,也不關心這些類裡方法的實現細節,它只規定這些類裡必須提供某些方法。

介面定義的基本語法

[修飾符] interface 介面名 [extends 父類介面1,父類介面2...]

介面中的方法只能是抽象方法,總是使用,即使不新增public abstract修飾符,系統也會自動加上。

使用 [修飾符] class 類名 extends 父類 implements 介面1,介面2...

如果要繼承父類,繼承父類必須在實現介面之前。

相關推薦

Java學習面向物件三大特徵通俗理解

Java的三大特性:封裝、繼承和多型。 封裝: 首先,屬性可用來描述同一類事物的特徵, 行為可描述一類事物可做的操作,封裝就是要把屬於同一類事物的共性(包括屬性與行為)歸到一個類中,以方便使用.比如人這個東東,可用下面的方式封裝: 人{ 年齡(屬性

Java學習面向物件

java面向物件的三大特性:封裝、繼承、多型。 封裝 定義 封裝就是將類的資訊隱藏在內部,不允許外部程式直接訪問,而是通過該類提供的方法來實現對隱藏資訊的操作和訪問。 好處 1.只能通過規定的方法訪問資料 2.隱藏類的例項細節,方便修改和實現 步驟 1.修改屬

Java學習面向物件面向過程的比較

前言   Java程式語言是一門面向物件的語言,這與之前的程式語言來說,是一個重大的進步和發展,下面主要來分析一下面向物件和麵向過程兩者之間的關係。程式語言的發展  如下圖,程式語言的發展經歷了大體四個

黑馬程式設計師 java程式設計面向物件學習筆記

---------------------- ASP.Net+Unity開發、.Net培訓、期待與您交流! ----------------------面向物件:以前學習過C語言,C語言是面向過程,裡面功能的實現都是由呼叫一個個的函式來完成的,而java是面向物件的程式語

黑馬程式設計師 java程式設計面向物件學習筆記總結

---------------------- ASP.Net+Unity開發、.Net培訓、期待與您交流! ---------------------- 繼承: 在java中,在我們要對一個事物進行封裝時,發現有某一個類的特性和要封裝的這個 類的特性相同,而我們可以在這個

Java學習面向對象一

.cn this 關鍵字 裝機 實現 run 運行 變量 方法 1 面向對象 1.1 理解什麽是面向過程、面向對象 面向過程與面向對象都是我們編程中,編寫程序的一種思維方式。 l 面向過程的程序設計方式,是遇到一件事時,思考“我該怎麽做”,然後一步步實現的過程。

java學習面向對象的四個特性

修改 行為 per 具體化 建立 編譯器 版本 自動 fin 對象:由行為、狀態和唯一標誌組成。 一 抽象 抽象是忽略一個主題中與當前目標無關的方面,把現實世界中的概念轉換為對象,可以是表示數據的VO對象或抽象類,也可以是表示一類行為的接口。有利於從眾多變化的狀態中抽

Java學習面向對象四

性別 代碼塊 完整 權限 私有屬性 屬性 包含 get sets 1、構造方法的格式是什麽?有哪些註意事項?  權限修飾符 類名(參數列表){方法體}  註意事項: ? 構造方法沒有返回值類型。也不需要寫返回值。因為它是為構建對象的,對象創建完,方法就執行結束。 ? 構造方

黑馬程式設計師----Java基礎面向物件(最終篇)

------- <a href="http://www.itheima.com" target="blank">android培訓</a>、<a href="http://www.itheima.com" target="blank">java培訓</a&g

黑馬程式設計師----Java基礎面向物件(封裝 繼承 多型)(二)

------- <a href="http://www.itheima.com" target="blank">android培訓</a>、<a href="http://www.itheima.com" target="blank">java培訓</a&g

黑馬程式設計師----Java基礎面向物件(封裝 繼承 多型)

------- <a href="http://www.itheima.com" target="blank">android培訓</a>、<a href="http://www.itheima.com" target="blank">java培訓</a&g

黑馬程式設計師----java基礎面向物件

------- <a href="http://www.itheima.com" target="blank">android培訓</a>、<a href="http://www.itheima.com" target="blank">java培訓</a&g

Java學習——初學面向物件

一、面向物件概述 1.思想概述: A.面向過程開發,其實就是面向著具體的每一個步驟和過程,把每一個步驟和過程完成,然後由這些功能方法相互呼叫,完成需求。更多的是用於底層程式碼。 面向過程的代表語言:C語言 B.把我們需要的這些步驟和功能在進行封裝,封裝時根據不同的功能,進行不同的封裝,功能類

JAVA基礎面向物件   (二)概念

1、成員變數和區域性變數的區別: 1)在類中的位置不同:成員變數(類中,方法外),區域性變數(方法中或者方法宣告上_形式引數) 2)記憶體中的位置不同:成員變數(堆記憶體),區域性變數(棧記憶體) 3)生命週期不同:成員變數(隨著物件的建立而存在,隨著物件的消失

ES6學習面向物件

1.寫法 class User{ constructor(name,password){//構造器 this.name = name; this.password = password;

Ruby學習面向物件的使用

Ruby是純面向物件的語言,其中的一切都是物件,對於這一點,相信大家都不會反駁,它其中最原始的值諸如字串、數字,甚至連 true 和 false 都是物件,類本身也是一個物件,是 Class 類的一個例項,它用於指定物件的形式,它結合了資料表示法和方法,把資料整理成一個整齊的包。類中的資料和方法

java day05面向物件

學習面向物件的三條主線 1.java類及類的成員 2.面向物件的三大特徵 3.其他關鍵字 面向物件(OOP)與面向過程 (1)二者都是一種思想,面向物件是相對於面向過程而言的。面向過程,強調的是功能行為。面向物件,將功能封裝進物件,強調具備了功能的物件 (2)面向

java基礎面向物件的三大特徵:封裝、繼承、多型,學java必會!

java它是OOP語言(ObjectOrientedProgramming)面向物件程式語言,那麼什麼是物件?物件是什麼?毫無疑問這個問題有很多個答案,每個人對物件的理解是不一樣。 java面向物件的三大基本特徵之封裝: 我們為什麼要對我們的程式碼進行封裝?當我們定義一個人類的體重,要

Java基礎面向物件的方法引數和物件上轉型

 本篇部落格著重說明方法的引數傳遞機制和 物件上轉型,作為前幾篇部落格的續貂之作,當然面向物件我還沒有回顧完呢。言歸正傳。 一、方法的引數傳遞機制 1.1說明:java裡的方法不能單獨存在,呼叫方法必須使用類或者物件作為主調者。 如果宣告的方法有形式引數宣告,則在呼叫時必

Python學習面向物件(封裝、繼承、多型)

面向物件 關於面向物件大家應該很熟知,即使說不出他的概念,但是至少記住他的三大特徵:封裝、繼承、多型。 封裝 所謂封裝,也就是把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏。 類的定義