第四節:詳細講解Java中的類和麵向物件思想
前言
大家好,我是 Vic
,今天給大家帶來詳細講解Java中的類和麵向物件思想
的概述,希望你們喜歡
類和麵向物件
在Java中怎樣理解物件,建立物件和引用;什麼是引用,對於基礎學習的同學,要深入瞭解引用。示例:String str = new String();
;其中str為引用,並建立了一個物件。
引用
- 如果一個變數的型別是類的型別,不是基本資料型別,那麼這個變數就叫做引用。
對 Person person = new Person();
這個的理解:
person叫做引用,new Person() 為建立了一個物件, " = " 表示左邊的引用指向右邊的物件。
面向物件思想
面向過程:就是站在過程的角度去思考問題,功能的執行過程,就是我們在實現功能的過程,類似方法,使用時,呼叫該函式就成。
面向物件:一種基於面向過程的程式設計思想,面向物件,就是站在物件的角度去思考問題。
面向物件的三大特徵
繼承:就是子類繼承父類,子類是一種特殊的類,可以直接或間接的獲取父類的成員。
封裝:就是將物件的實現的細節隱藏起來,通過公共的方法向外暴露物件的功能。
多型:多型就是把子類的物件賦值給父類的變數。
物件
物件的定義:狀態和行為
一切事物都可以認為是物件,具有狀態和行為。
類
類是物件的模板,類是構建物件的基礎,物件的抽象是類,類的具體化則是物件,在程式碼中我們常說建立一個類,並在類中例項化物件。
物件的建立及其使用
在程式中,先有類,再有物件
- 建立物件: 類 物件名 = new 類名();
- 物件呼叫方法: 物件名.方法名();
- 匿名物件:就是該物件沒有名字,建立物件時,沒有賦給一個變數
匿名物件的示例:new Person();
匿名物件只能被使用一次,由 new Person()
就可以知道,建立後無法再次使用。
一個引用,多個物件
//當建立了一個引用,再把該引用指向另一個物件
Personone one = new Personone();
one = new Persontwo();
//代表該引用指向了另一個物件,那麼之前的物件將不被該引用指向,那麼之前的物件會被Java的回收機制處理
繼承
在現實世界當中,繼承就是兒子得到老子的東西,在面向物件的世界當中,繼承就是一個類得到了另一個類當中的成員變數和成員方法
Java只支援單繼承,不允許多繼承,繼承是為了減少重複程式碼
使用super呼叫父類建構函式的方法
class Person{
String name;
int age;
Person(){
System.out.prinltn("Person的無引數建構函式");
}
Person(String name,int age){
this.name=name;
this.age=age;
System.out.println("Person有引數的建構函式");
}
void eat(){
System.out.println("定義吃飯的方法");
}
}
class Student extends Person{
//子類繼承父類
Student(){
//父類
super();
System.out.println("Student的無引數建構函式");
}
Student(String name,int age,int id){
super(name,age);
this.id=id;
}
}
//測試類
class Test{
public static void main(String args[]){
Student student = new Student();
}
}
重寫和過載
- 過載:方法名一樣,但是引數型別不一樣(不同的引數個數,不同的引數型別,不同的引數次序)
- 重寫:子類中定義的某個方法與其父類有相同的名稱和引數,則該方法被重寫了
構造方法
public class Person{
Person(){
//構造方法
}
public static void main(String[] args){
Person person = new Person();
}
}
四種訪問修飾符
- private 私有的
- default 不寫
- protected 受保護的
- public 公共的
類屬性,物件屬性
類屬性: 叫做靜態屬性
物件屬性: 叫例項屬性,非靜態屬性
類方法,物件方法
類方法: 叫做靜態方法
物件方法: 叫例項方法,非靜態方法
物件屬性初始化,類屬性初始化
物件屬性初始化3種
- 宣告該屬性的時候初始化
- 構造方法中初始化
- 初始化塊
類屬性初始化2種
- 宣告該屬性的時候初始化
- 靜態初始化塊
書籍
總結
- 本文講了詳細講解Java中的類和麵向物件思想,如果您還有更好地理解,歡迎溝通
- 定位:分享
Android
&Java
知識點,有興趣可以繼續關注