精华内容
下载资源
问答
  • C++实例化方法
    千次阅读
    2020-03-15 12:34:08

    实例化:是指创建一个对象的过程

    C++中类的实例化有两种方式——在栈中实例化和在堆中实例化

    在栈中实例化为静态分配内存,不需要手动回收,超出内存系统报错。例如:Student a或者Student a[3],使用“.”操作符,声明即调用了构造函数(已分配了内存);

    在堆中实例化为动态分配内存,需要使用delete回收。例如:Student* a = new Student()或者Student* a = new Student[3],使用“->”操作符,()相当于调用构造函数,如果存在默认的构造函数时,有时候会省略();

    Student是直接访问一个对象
    Student*是间接访问一个对象,因为通过了一个指针作媒介。

    然而什么时候用哪一种方法呢?
    1.申请对象数量不确定时
    2 需要空间较大时,例如:
    你可以定义一个数组 BYTE pBuff[4000*1024]; 用来存放文件数据
    这样如果文件很小就会浪费内存空间,文件很大则文件数据不能全部读出。所以在读文件的时候需要根据文件的size来开辟一块内存
    BYTE *pBuff = new BYTE[size]使这块内存刚刚好可以存放文件数据
    像这种情况就需要new 了,不管你的对象或结构参数多么庞大,你用指针,传过去的就是4个字节。如果用对象,参数 传递占用的资源就太大了。

    3.需要用类实现多态性
    这个主要是在用类的继承特性的时使用

    4.需要跨作用域的时候采用new的方法,只在一个函数内使用的对象采用直接访问的方法即可。

    更多相关内容
  • Java如何main方法中实例化内部对象

    千次阅读 多人点赞 2019-03-11 15:33:42
    今天我在实例化一个是编译器报以下错误: No enclosing instance of type Person is accessible. Must qualify the allocation with an enclosing instance of type Person (e.g. x.new A() where x is an ...

    今天我在实例化一个类是编译器报以下错误:

    No enclosing instance of type Person is accessible. Must qualify the allocation with an enclosing instance of type Person (e.g. x.new A() where x is an instance of Person).

     后来才反应 Java中

    不能直接创建实例化内部类对象

    百度后得到以下结论:

    1:非静态内部类,必须有一个外部类的引用才能创建。

    2:在外部类的非静态方法中,因为有隐含的外部类引用this,所以可以直接创建非静态内部类。

    3:在外部类的静态方法中,因为没有this,所以必须先获得外部类引用,然后创建非静态内部类。

    4:静态内部类,不需要外部类引用就可以直接创建。

    5:同时静态的内部类,也不能直接访问外部类的非静态方法。

    6:由此可以推测,非静态内部类之所以可以直接访问外部类的方法,是因为创建非静态内部类时,有一个隐含的外部类引用被传递进来。

    看到第一个 非静态内部类,必须有一个外部类的引用才能创建。

    我想到了不能直接new 于是我这样

    Man man = new Person().new Man();

    这样成功了

     

     

     

     

     

     

     

    展开全文
  • c++和java我们会定义很多,但是我们会遇到进行new实例化时会遇到“不能实例化抽象”或者“抽象不能实例化”,针对这个问题要首先理解两个内容“抽象”和“实例化” 如果只是想单纯的理解,那么...

    在c++和java中我们会定义很多类,但是我们会遇到在对类进行new实例化时会遇到“不能实例化抽象类”或者“抽象类不能实例化”,针对这个问题要首先理解两个内容“抽象类”和“实例化”

    如果只是想单纯的理解,那么意思就是你画了一个有四条边的图形你说是矩形

    但是这是不可以的,为什么?因为矩形还有一个条件就是要四个内角是直角

    其中画有四条边的图形就是抽象类,矩形就是实例化

    如果理解了含义但是不懂代码中的定义,那么那么就百度百度定义!定义真的很重要!

    抽象类定义:

    含有纯虚函数的类称为抽象类

    实例化的定义:

    用类创建对象的过程

    纯虚函数的定义:

    一个只有函数名、参数和返回值类型,没有函数体的函数成为纯虚函数。

    这一层懂了当然最好

    如果不懂再来看看代码test 中shape未编译通过

    #include <iostream>
    using namespace std;
    //定义一个形状抽象类(基类)
    class Shape {
        //保护继承 ,其派生类也会继承保护成员
      protected:
        double x;
        double y;
        //公有继承
      public:
        void set(double i, double j) {
            x = i;
            y = j;
        }
        //纯虚函数
        virtual void area() = 0;
    };
    //定义矩形类并定义其面积为长*宽(派生类)
    class Rectangle : public Shape {
        void area() { cout << x * y << endl; }
    };
    
    int main() {
        Rectangle rec; //定义一个矩形对象(实例化)
        // Shape rec;
        Shape *p = &rec; //定义一个抽象类的指针,并使它指向矩形对象
        p->set(2, 4);    //调用
        p->area();
        return 0;
    }

    详细定义矩形,可以实例化并正常输出

    未定义,提示含有纯虚函数无法抽象实例化对象

    展开全文
  • String的两种实例化方式

    千次阅读 2021-02-05 13:11:15
    面试常见问题:比较String的两种实例化方式

    String类的两种构实例化方式

    实例化方式产生实例化对象数是否入字符串常量池是否可以实现重用
    直接赋值一个自动加入字符串常量池可以重用
    构造方法两个不会自动入池,可以手工入池注入池中才可重用

    在这里插入图片描述

    在这里插入图片描述

    说明:

    • 1.使用构造方法进行实例时,JVM会开辟两块堆空间。只使用其中的一块,另外一个由于字符串常量所定义的匿名对象将成为我们的垃圾空间。
    • 2 .用构造方法实例化对象时,可以使用intern方法手工注入常量池中,但是一定要在new的时候调用,实例化完成后再调用就没用用了。

    测试:

    public class Test {
        public static void main(String[] args) {
    
            //只会产生一个实例化对象,并且可以自动保存到对象池中,以实现该字符串实例的重用;
            String a="123";
            String b="123";
            System.out.println(a==b);//true
    
    
            String c=new String("134");
            String d=new String("134");
            System.out.println(c==d);//false
    
    
            String e=new String("123").intern();//调用构造方法时候手工入池
            System.out.println(a==e);//true
    
            String f=new String("123");
            f.intern();//此时f已完成实例化
            System.out.println(a==f);//false
    
            String g=new String("145").intern();
            String h="145";
            System.out.println(g==h);//true
        }
    }
    
    
    展开全文
  • 抽象实例化方法

    千次阅读 2018-10-31 22:00:30
    抽象实例化方法 抽象可以有自己的构造方法,但是不能直接通过new进行实例化。但是可以通过子类继承,实例化子的时候抽象也会被实例化。 ...
  • python的定义与实例化

    千次阅读 2020-11-03 22:42:48
    的定义与实例化 Python,通过class关键字定义一个,比如我们需要定义一个人的。按照 Python 的编程习惯,类名以大写字母开头。因此可以这样定义: class Person: pass 注意,这个Person的定义里面,...
  • 一本书上看到这个,这里的内容试讲java的构造方法私有化的 class Singleton { Singleton instance=new Singleton()...类中实例化的对象不会陷入死循环之?这里书上还说这种方式单例设计和多例设计会用到
  • java 内部类实例化方式

    万次阅读 2018-09-06 19:42:52
    1、java成员和静态内部的使用,适用本身适用,旨在减少文件个...①java成员内部和静态内部实例化方式, ②内部的方法调用方式 代码实现如下: package com.innerClass; import com.google.gson.Gso...
  • C++中类实例化的两种方法

    万次阅读 2018-07-29 11:45:55
    1、首先定义一个 class Coordinate ...2.实例化一个的对象 void main() { Coordinate coord[3]; //栈上 coord[1].m_iX=10; //初始化一个实例 Coordinate *p=new Coordinate[3]; //堆 ...
  • 模板实例化问题

    千次阅读 2016-12-05 15:43:03
    模板函数声明的时候, 其实并不存在,函数地址也就无从谈起了,而导出到动态链接库的函数都需要有地址 (动态链接库不能将模板导出,因为没法生成实例) 如果把模板的声明和...原因是模板实例化要分成两个步
  • 不需要实例化也能直接用

    千次阅读 2018-10-05 15:26:44
     我以前的意识,我们需要用到某个的时候,需要先实例化这个实例化出一个对象,然后使用这个里面的方法和属性,今天偶然的机会了解到,原来有些是不需要实例化就可以直接用的——静态(static),...
  • java内部实例化

    千次阅读 2016-11-19 13:04:52
    java的内部如何实例化?例子: public class Animal{ class Head{ } }测试如何实例化内部: public class TestInstanceInnerClass{ public TestInstanceInnerClass(){ Animal animal = new Animal();/
  • C++模板定义及实例化

    千次阅读 2019-08-21 13:44:08
    文章目录一、模板定义及实例化定义一个模板:模板实例化二、模板的成员函数 一、模板定义及实例化 定义一个模板: template<class 模板参数表> class 类名{ // 定义...... }; 其中...
  • 理解python的类实例化

    万次阅读 多人点赞 2017-12-15 08:54:21
    英文原文来自Understanding Python Class Instantiation 从PythonWeekly邮件看到让我们以一个Foo开始: class Foo(object): def __init__(self, x,...当你实例化它(即创建该的一个新的实例)时发生了什么?f =
  • 3.2、抽象一个实例化对象

    千次阅读 2018-03-28 19:20:36
    一、抽象一个 二、实例化对象 1、实例化对象 2、对象类型内存分配情况 三、$this 四、构造函数和析构函数
  • 说的spring容器bean的初始化和实例化也不得不说的加载机制。 上面的链接也很好的说了这一过程。 先抽出一部分要点: 加载->连接(验证,准备,解析)->初始化->使用->销毁 其中加载又...
  • 什么是实例化

    千次阅读 多人点赞 2019-07-11 09:02:59
    是指:描述一种事物的定义,是个抽象的概念 ...编程时也是同样的道理,你先自己定义一个“”,当你需要用时,用“”的定义来创造一个具体的例子。 用的定义来创建一个实例,就叫做实例化。 ...
  • 实例化servlet时出错

    千次阅读 2021-03-15 20:49:12
    这是我的index.html 这是我的web.xml`submitFormstudent.StudentSurveyFormSubmitsubmitForm/submitForm`还有我的servletpackage student; @WebServlet("/StudentSurveyFormSubmit") public class ...
  • /// 这是私有的构造函数,说明只能Atom实例化Atom的对象,也就是静态构造函数new出对象, /// 那么,其他地方要用Atom对象的话,就直接读上面那几个Atom对象就OK,别去每用一次Atom对象就new一次 /// ...
  • 内部及静态内部实例化

    千次阅读 2016-10-11 21:49:40
    内部实例化 如果内部未声明为static,在实例化时首先需要new一个外部的对象。并通过p.new Inner()的方式new 内部,表明这个内部指向该外部。内部的class类型为:Parent.Inner,而不是p.Inner,这个...
  • 什么是实例化实例化、声明、初始化的区别

    千次阅读 多人点赞 2020-04-26 21:40:29
    实例化(instantiate)是指面向对象的编程,把用创建对象的过程称为实例化。是将一个抽象的概念,具体到该实物的过程。实例化过程一般由类名 对象名 = new 类名(参数1,参数2...参数n)构成。 简介 ...
  • C#——实例化

    万次阅读 多人点赞 2018-05-04 14:26:02
    是模子,确定对象将会拥有的特征(属性)和特征和行为(方法)实例化:(通过来产生对象,就叫做实例化,即一个实例就是一个对象) 1.实例化,用关键字new 语法: 实例名 = new (); ...
  • Java中子类中子类实例化父类对象

    千次阅读 2019-05-03 18:08:39
    写一个父类,里面有两个方法,doing ()和talking(),并doing ()方法调用talking()方法。代码如下: public class Father { public void doing (){ talking(); } public void talking(){ ...
  • java中类 实例化的三种方法

    千次阅读 2018-08-01 13:49:45
    创建对象的方法: 1 使用公有的构造方法创建 new Person person = new person();... 实例工厂模式就是这个对应的包中,再新建一个工厂这个类中调用new,后面想要new,直接调工厂就行了。  
  • python是否被实例化以及引用次数

    千次阅读 2019-02-20 17:38:45
    要点: 1.内置函数__str()__被重写。 def __str__(self): return Animal.species+" is "+self.name ...2.系统sys.getrefcount(cat...for obj in gc.get_objects():#判断是否有实例化 if isinstance(...
  • 面向对象程序设计,""在实例化之后叫做一个"实例"(Person person = new Person())。 ""是静态的,不占进程内存,而"实例"拥有动态内存。 实例(instance)和对象(object)的区别: 对象就是的实例,所有的...
  • python中类的创建和实例化

    万次阅读 2018-07-27 09:24:15
    python中实例化类不需要使用关键字new(也没有这个关键字),实例化类似函数调用方式; # coding: utf-8 # 创建一个名称第一个字母大写,可以带括号也可以不带括号 class Student(): student_count =...
  • Python的定义,实例化

    千次阅读 2019-02-25 17:36:16
    定义完成后,就会产生一个对象,绑定到了标识符ClassName上 class ClassName: 语句块 举例: class MyClass: """A example class""" x = 'abc'#属性 def foo(self):#...
  • 如何实现抽象实例化

    千次阅读 2018-11-01 12:05:06
    正常情况下抽象是不能实例化的,但可以模拟实例化,即 利用匿名内部可以实现抽象的,举例如下: 1、需要实例化 的 抽象 代码如下: public abstract class AbstractFruit { private String name; ...
  • Python(一)-实例化一个

    千次阅读 2019-09-23 09:07:43
    #-*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" class Person(): n = 123 #变量 def __init__(self,name,money,age=33): #构造函数 ... #给实例化传参数 self.name = name #实例变量 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,077,194
精华内容 830,877
关键字:

在类中实例化自己