實例化

實例化

實例化是指在面向對象的編程中,把用類創建對象的過程稱為實例化。是將一個抽象的概念類,具體到該類實物的過程。實例化過程中一般由類名 對象名 = new 類名(參數1,參數2...參數n)構成。

基本介紹

  • 中文名:實例化
  • 外文名:instantiate
  • 含義:用類創建對象的過程
  • 類型:編輯過程
  • 格式:類名 對象名 = new 類名
簡介,使用方法,類模板與函式模板實例化,函式模板實例化,類模板的實例化,

簡介

面向對象的編程中,通常把用類創建對象的過程稱為實例化,其格式如下:
如 Date date=new Date();就是用日期類創建了一個日期的對象,就叫對象的實例化。
多數語言中,實例化一個對象就是為對象開闢記憶體空間,或者是不用聲明,直接使用new 構造函式名,建立一個臨時對象。
例:Java
public class A{    public static void main(String[] args){        B b = new B();//實例化        b.print();    }}class B{    public void print(){        System.out.println("Hello,World!");    }}
例: c#
namespace test{    class A    {        public int Sub(int a)        {            return a++;        }    }    class B    {        public void Main(String[] args)        {            int p = (new A()).Sub(1);            System.Console.WriteLine(p);            System.Console.ReadKey();        }    }}

使用方法

PHP為例。
類不同於函式,定義完之後無法直接使用,因為類只是一個抽象的概念,需要通過關鍵字new來實例化類,才可以使用。類實例化的語法格式如下:變數名=new 類名([構造函式])。其中,變數名可以為任何PHP變數的名稱,構造參數取決於類的構造函式(將在8.2.5節中詳細講述),若無構造函式,則圓括弧中為空。
實例化一個類後即可使用該類。
例如:
<?php     class People{         public $name;           public function introduceMySelf(){             echo '內容',$this->name.‘內容2’;         }      }      $p=new People(); ?>
如果要在類外使用類的屬性和方法(前提是該屬性或方法是可訪問的),需要使用操作符->,語法格式如下:
  • 實例化的類變數名->屬性名;
  • 實例化的類變數名->方法名([方法參數]);
使用類的方法與調用函式一樣,在圓括弧中給出函式參數(沒有參數時當然就不用寫了)。需要特別注意的是,在使用操作符->引用屬性時,屬性名是不加符號$的。

類模板與函式模板實例化

函式模板實例化

C++為例,C++標準除支持隱式實例化模板函式外,還支持顯式實例化。其語法格式如下:
template 返回類型 函式名<類型實參列表>(實參類型列表);
例如,若有以下函式模板
template<typename T>void swap(T a ,T b){     T tempt=a;     a=b;     b=tempt;};
那么,以下語句是該函式模板的一個顯式實例化:
template void swap<int>(int,int);
說明:template關鍵字之後不再跟"<>",否則就成了函式模板的特化。

類模板的實例化

與函式模板相似,類模板只是一個虛的“圖紙”。只有在編譯期間,編譯器根據給定的模板類型實參生成實實在在的模板類,這才是真實存在的類代碼。函式模板實例化後會生成模板函式,類模板實例化後則會生成模板類。
在為不同模板實參類型實例化生成模板類時,編譯器會為每種數據類型都生成一個模板代碼的副本,所以結果會導致代碼體積增大。因此,在實際調用過程中,編譯器會有選擇的實例化類模板中的成員函式,只有那些被調用了的函式,它對應的類模板成員函式才會被編譯器實例化並生成。這就是類模板的“選擇性實例化”。

相關詞條

熱門詞條

聯絡我們