建造師(constructor)和解構函式(destructor)的區別

大多數程式語言都支援面向物件程式設計(OOP)。它是幫助使用物件對軟體或程式進行建模的範例。OOP提高了生產力和可維護性。在OOP中,一切都被視為一個物件。物件是使用類建立或例項化的。建構函式和解構函式是面向物件程式設計中的常用術語。本文討論建構函式和解構函式之間的區別。建構函式和解構函式是類中的特殊成員函式。建構函式和解構函式與類同名,但解構函式有一個波浪號(~)。建構函式和解構函式的關鍵區別在於,構造...

關鍵區別–構造函數與析構函數

大多數編程語言都支持面向對象編程(OOP)。它是幫助使用對象對軟件或程序進行建模的範例。OOP提高了生產力和可維護性。在OOP中,一切都被視為一個對象。對象是使用類創建或實例化的。構造函數和析構函數是面向對象編程中的常用術語。本文討論構造函數和析構函數之間的區別。構造函數和析構函數是類中的特殊成員函數。構造函數和析構函數與類同名,但析構函數有一個波浪號(~)。構造函數和析構函數的關鍵區別在於,構造函數用於為對象分配內存,而析構函數用於釋放對象的內存。

目錄

1. 概述和主要區別
2. 什麼是構造器
3.什麼是毀滅者
4. 構造函數和析構函數的相似性
5. 並排比較-表格式的構造函數與析構函數
6. 摘要

什麼是建造師(a c***tructor)?

構造函數是類中的一個特殊成員函數,用於將內存分配給對象。它可用於為數據成員提供值。在創建對象時調用構造函數。它與類名同名。構造函數不返回任何值。因此,它不包含返回類型。構造函數也可以接受參數。帶有參數的構造函數稱為參數化構造函數。

下面是構造函數的一個示例。

公共類矩形{

內長、寬;

公共矩形(int p,int q){

長度=p;

寬度=q;

}

公共int calculateArea(){

返回(長*寬);

}

}

根據上面的代碼,構造函數與類名同名。構造函數矩形接受兩個參數。它們是p和q。整數值p被指定給長度。整數值q指定給寬度。在計算領域中,計算長度和寬度的乘積來計算矩形的面積。在主程序中,程序員可以創建矩形類型的對象並傳遞參數。e、 g.Rectangle rect1=新矩形(2,3)。然後,調用參數化構造函數並將值賦給長度和寬度。

建造師(c***tructor)和析構函數(destructor)的區別

圖01:構造函數和析構函數

當有一個沒有任何參數的構造函數時,它被稱為默認構造函數。如果程序員沒有定義構造函數,則將調用默認構造函數。如果有一個類作為Student,當程序員創建一個Student類型的對象時,將調用默認構造函數。e、 g.Student s1=new Student();一個類中可以有多個具有不同參數和不同數據類型的構造函數。相應地可以調用相應的構造函數。因此,構造函數可以重載。

什麼是毀滅者(a destructor)?

析構函數是類中的一個特殊成員函數。它用於為構造函數創建的對象取消分配內存。銷燬對象時調用析構函數。它執行不再需要的清理存儲。與構造函數一樣,析構函數與類具有相同的名稱。它還包含顎化符(~)符號。

析構函數不返回任何值。與構造函數不同,析構函數不接受任何參數。所以,析構函數不支持重載。聲明析構函數被認為是一種很好的編程實踐,因為它釋放內存空間,並且該空間可用於存儲其他一些對象。析構函數的語法類似於~className(){}。e、 g.~Rectangle(){};一個類中只能有一個析構函數。

建造師(c***tructor)和析構函數(destructor)的共同點

  • 構造函數和析構函數都與對象關聯。
  • 構造函數和析構函數都不返回任何值。
  • 構造函數和析構函數都是自動調用的。

建造師(c***tructor)和析構函數(destructor)的區別

構造函數與析構函數
構造函數是類中用於為對象分配內存的特殊成員。 析構函數是用於釋放對象內存的類的特殊成員。
調用方法
在創建對象時調用構造函數。 銷燬或刪除對象時調用析構函數。
使用
構造函數用於為對象分配內存。 析構函數用於釋放對象的內存。
參數
構造函數接受參數。 析構函數不接受參數。
構造函數和析構函數的數量
可以有多個具有不同數量參數和不同類型參數的構造函數。 類中可以有一個析構函數。
執行速度
構造函數的名稱與類名相同。 析構函數與帶有波浪號(~)符號的類名同名。
超載
構造函數可以重載。 析構函數不能重載。

總結 - 建造師(c***tructor) vs. 析構函數(destructor)

OOP是軟件開發中常用的一種模式,它可以簡化複雜的項目。在OOP中使用構造函數和析構函數。構造函數與析構函數具有相同的名稱,但與析構函數具有相同的符號。構造函數和析構函數的區別在於,構造函數用於為對象分配內存,而析構函數用於釋放對象的內存。

下載構造函數與析構函數的pdf文件

你可以下載這篇文章的PDF版本,並根據引文說明離線使用。請在這裡下載PDF版本:構造函數和析構函數的區別

引用
  • 發表於 2020-10-18 11:50
  • 閱讀 ( 43 )
  • 分類:科技

你可能感興趣的文章

關係(relation)和功能(function)的區別

...用術語。儘管它經常被使用,但在沒有正確理解它的定義和解釋的情況下使用它。本文主要介紹函式的這些方面。 關係 關係是兩組元素之間的聯絡。在更正式的情況下,它可以描述為兩個集合X和Y的笛卡爾積的子集。X和Y的笛卡...

  • 發佈於 2020-09-27 15:21
  • 閲讀 ( 53 )

字串緩衝區(string stringbuffer)和java中的stringbuilder(stringbuilder in java)的區別

...可變。因此,可以修改這些物件。StringBuffer定義了四個建構函式。StringBuffer()、StringBuffer(int size)、StringBuffer(String str)、StringBuffer(charSequence[]ch) 參考下面的程式碼, StringBuffers1=新StringBuffer(“Hello”); s1.追加(“世...

  • 發佈於 2020-10-02 19:22
  • 閲讀 ( 46 )

處置()(dispose ())和完成()(finalize ())的區別

...收器呼叫。在銷燬物件之前呼叫此方法。這個方法是在解構函式的幫助下實現的。finalize方法在中定義java.lang.object班級。此方法宣告為受保護。它不宣告為public以避免其他類訪問。總的來說,finalize方法可以最小化程式的效能,...

  • 發佈於 2020-10-18 23:21
  • 閲讀 ( 57 )

屬性(attribute)和引數(parameter)的區別

...式,Rhombus類有兩個屬性:diagonal1和diagonal2。它還具有建構函式和計算面積的方法。在主程式中,建立了一個菱形物件。將兩個值傳遞給建構函式,這些值將分配給diagonal1和diagonal2屬性。呼叫calArea方法時,計算菱形的面積,它將...

  • 發佈於 2020-10-19 02:04
  • 閲讀 ( 61 )

領域(field)和c屬性#(property in c#)的區別

...類。它包含三個公共欄位,分別是base1、height1和area。建構函式可以為base1和height指定值。在main方法中,建立了一個三角形物件。它被稱為t1,兩個值被傳遞到基部和高度。Triangle類中的建構函式將這些值分配給欄位。然後,在main...

  • 發佈於 2020-10-19 02:36
  • 閲讀 ( 49 )

整數(integer)和浮動(float)的區別

...樣,int被轉換成整數。 y是整數型別的物件。值5傳遞給建構函式。使用intValue方法,該物件被轉換為int資料型別。轉換後的值被儲存到可以儲存int的z變數中。 圖02:自動裝箱和取消裝箱示例1 根據上面的程式,變數x有一個int,當...

  • 發佈於 2020-10-19 08:34
  • 閲讀 ( 52 )

垃圾收集器(garbage collector)和解構函式(destructor)的區別

...體釋放。它平衡了效能和記憶體使用。 什麼是毀滅者(a destructor)? 解構函式是一個特殊的類的成員。每當物件超出範圍時都會呼叫它。當函式結束或程式執行結束時,可以銷燬物件。解構函式與類名同名。建構函式用於建立物...

  • 發佈於 2020-10-19 13:14
  • 閲讀 ( 42 )

班(class)和結構(c)#(structure in c#)的區別

...類。要在C中定義類,請使用“class”關鍵字。 類包含建構函式。它是一個特殊的函式,在建立類的新物件時執行。建構函式與類同名。它沒有返回型別。預設建構函式沒有任何引數。引數化建構函式包含引數。類也可以包含解...

  • 發佈於 2020-10-19 17:15
  • 閲讀 ( 53 )

這(this)和超級java(super in java)的區別

...{ A obj=新的A(5); } } A級{ 公共A(){ System.out.println(“建造商A”); } 公共A(int x){ 這個(); System.out.println(“引數化建構函式A”); } } 根據上面的程式,類A有一個預設建構函式和一個引數化建構函式。建立的物件時...

  • 發佈於 2020-10-19 18:17
  • 閲讀 ( 59 )

標頭檔案(header file)和庫檔案(library file)的區別

...有標頭檔案和庫檔案。這些語言在標頭檔案中儲存常量和函式原型。程式設計師可以自己編寫標頭檔案,也可以自帶編譯器。標頭檔案很有用,因為它們使程式更具組織性和可管理性。如果所有定義的函式都在同一個檔案中,則...

  • 發佈於 2020-10-19 18:35
  • 閲讀 ( 86 )
fadqmzshbg
fadqmzshbg

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章