什么是实例化,实例化、声明、初始化的区别

您所在的位置:网站首页 什么叫华为账号初始化失败 什么是实例化,实例化、声明、初始化的区别

什么是实例化,实例化、声明、初始化的区别

2024-07-11 23:38| 来源: 网络整理| 查看: 265

实例化(instantiate)是指在面向对象的编程中,把用类创建对象的过程称为实例化。是将一个抽象的概念类,具体到该类实物的过程。实例化过程中一般由类名 对象名 = new 类名(参数1,参数2...参数n)构成。

简介

在面向对象的编程中,通常把用类创建对象的过程称为实例化,其格式如下:

如 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变量的名称,构造参数取决于类的构造函数,若无构造函数,则圆括号中为空。 

实例化一个类后即可使用该类。

例如:

如果要在类外使用类的属性和方法(前提是该属性或方法是可访问的),需要使用操作符->,语法格式如下:

实例化的类变量名->属性名;

实例化的类变量名->方法名([方法参数]);

使用类的方法与调用函数一样,在圆括号中给出函数参数(没有参数时当然就不用写了)。需要特别注意的是,在使用操作符->引用属性时,属性名是不加符号$的。 

类模板与函数模板实例化 函数模板实例化

以C++为例,C++标准除支持隐式实例化模板函数外,还支持显式实例化。其语法格式如下: 

template 返回类型 函数名(实参类型列表);

例如,若有以下函数模板:

template void swap(T a ,T b){      T tempt=a;      a=b;      b=tempt; };

那么,以下语句是该函数模板的一个显式实例化:

template void swap(int,int);

说明:template关键字之后不再跟"",否则就成了函数模板的特化。

类模板的实例化

与函数模板相似,类模板只是一个虚的“图纸”。只有在编译期间,编译器根据给定的模板类型实参生成实实在在的模板类,这才是真实存在的类代码。函数模板实例化后会生成模板函数,类模板实例化后则会生成模板类。

在为不同模板实参类型实例化生成模板类时,编译器会为每种数据类型都生成一个模板代码的副本,所以结果会导致代码体积增大。因此,在实际调用过程中,编译器会有选择的实例化类模板中的成员函数,只有那些被调用了的函数,它对应的类模板成员函数才会被编译器实例化并生成。这就是类模板的“选择性实例化”。 

声明、初始化、实例化的区别

声明是指使用一个对象的时候,先定义属于哪个类型,比如string _str;

_str是声明(定义)了一个string类型的对象。

初始化可以理解为给声明的对象赋值的过程。string _str ="hello";

_str现在已经被初始化了,实例化后它具有“hello”这个值。

实例化是类用到的,A a = new A();当new的时候为对象分配内存,这个过程是对象的实例化。

 

总结:

声明,只生成对象不赋值的过程。

初始化,是给对象赋值的过程。

实例化,是使用new为对象分配内存的过程。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3