c#对象初始化

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace nange_1
{
    class A
    {
        public int a=1;//这里和c++不一样的,c#可以再类里面给字段赋值;
        public int b=2;
        public A()
        {

            Console.WriteLine("构造函数");
        }
        public A(int a,int b)
        {
            this.a = a;
 this.b = b;
            Console.WriteLine("构造函数");
        }
    }

   class Program
    {
        static void Main(string[] args)
        {
            A objA = new A();
            Console.WriteLine(objA.a+" "+ objA.b);
            A objB = new A { a = 3, b = 4 };//可以这样初始化对象
            Console.WriteLine(objB.a + " " + objB.b);
            A objC = new A(5, 6);
            Console.WriteLine(objC.a + " " + objC.b);
            Console.ReadLine();
        }

    }
}输出结果如下所示:

时间: 2024-11-10 07:30:21

c#对象初始化的相关文章

对象初始化

对象初始化过程 第一步:在创建之前,检查是否加载(检查硬盘上的class文件是否加载到内存中,如果没有加载,就先加载父类的文件) 在加载父类的文件,在加载本类的文件中java使用的加载的策略:懒惰式加载(按需加载)用到的时候,只加载一次. 第二步:分配对象的空间.递归分配所有父类和子类的属性空间,属性会自动初始化为"0"的值 第三步:给属性赋值 第四步:调用父类的构造方法(默认调用父类的无参构造方法) 第五步:调用本类的构造方法

类加载与对象初始化

1. 初始化原因:避免发生空指向异常. 2. 类加载与初始化的顺序: 2.1 类加载时间:          每个类的编译代码都存在于他自己的独立文件中,该文件的加载通常发生在创建类的第一个对象时,或是访问类的static域或static方法时. 2.2 初始化顺序:(先父类后子类,创建对象之前先对类中的域进行初始化)        首先,类加载器主动加载主类(主类的初始化顺序与下面普通类一样),找到main方法,在main方法中根据第一行要创建的对象,加载该类的字节码文件,如果编译器注意到她有

Java 对象初始化顺序 执行顺序

先看一道Java面试题: 求这段程序的输出. 解答此题关键在于理解和掌握类的加载过程以及子类继承父类后,重写方法的调用问题: 从程序的执行顺序去解答: 1.编译:当这个类被编译通知后,会在相应的目录下生成两个.class 文件.一个是 Base.class,另外一个就是Base$Sub.class.这个时候类加载器将这两个.class  文件加载到内存 2.Base base= new Sub(): 声明父类变量base对子类的引用,JAVA类加载器将Base,Sub类加载到JVM(Java虚拟

理解隐式类型、对象初始化程序和匿名类型

在C# 3.0中,几乎每个新特性都是为LINQ服务的.所以,本文将介绍下面几个在C# 3.0中引入的新特性: 自动实现的属性 隐式类型的局部变量 对象和集合初始化程序 隐式类型的数组 匿名类型 其实这几个特性都是比较容易理解的,对于这几个特性,编译器帮我们做了更多的事情(想想匿名方法和迭代器块),从而简化我们的代码. 自动实现的属性 在C# 3.0以前,当我们定义属性的时候,一般使用下面的代码 public class Book { private int _id; private string

对象初始化的过程

对象初始化过程: a.在创建类之前,检查类是否已加载(检查硬盘上的class文件,是否已加载到内存中),如果没有加载就先加载父类文件,再加载本类的文件        Java使用的加载策略:懒惰式加载(按需要加载),用到的时候加载,只加载一次 b.分配对象的空间,递归分配所有的父类和子类的属性空间  属性会自动初始化为"0"值 c.给属性赋值 d.调用父类的构造方法(默认调用父类的无参构造方法) e.调用本类的构造方法

对象初始化优先级

初始化优先级:静态代码块>>main方法>>构造代码块>>构造函数 1 package com.itinfo; 2 3 /** 4 * 代码块的优先级 5 * http://www.cnblogs.com/goodcheap 6 * 7 * @author: Wáng Chéng Dá 8 * @create: 2017-02-26 19:12 9 */ 10 public class CodeBlock { 11 12 static { 13 System.out.p

Java父类子类的对象初始化过程

摘要 Java基本的对象初始化过程,子类的初始化,以及涉及到父类和子类的转化时可能引起混乱的情况. 1. 基本初始化过程: 对于一个简单类的初始化过程是: static 修饰的模块(static变量和static 块)  ---> 按照代码顺序依次执行. | 实例变量  及非static模块---> 按照代码顺序依次执行. | 构造函数 ---> 执行对应的构造函数. 子类的初始化过程. 父类static修饰的模块 | 子类static修饰模块 | 父类实例变量和非static块 | 父

Java对象初始化详解

出处:http://blog.jobbole.com/23939/ 在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的.本文试图对Java如何执行对象的初始化做一个详细深 入地介绍(与对象初始化相同,类在被加载之后也是需要初始化的,本文在最后也会对类的初始化进行介绍,相对于对象初始化来说,类的初始化要相对简单一 些). 1.Java对象何时被初始化 Java对象在其被创建时初始化,在Java代码中,有两种行为可以引起对象的创建.其中比较直观的一种,也就是通常所

阿里巴巴面试题--Java对象初始化

转自 http://blog.csdn.net/ysjian_pingcx/article/details/19605335 Java对象初始化 这是一道阿里巴巴的关于Java对象初始化的面试题,堪称经典,代码很简单(编写格式做了些修改),但是需要面试者对Java中对象初始化有一个透彻的认识,那么通过这道面试题,对我有点启发,所以希望在这里分享给大家,希望能给迷惘的初学者一起指引,下面我们直入主题,先看看代码: 1 public class InitializeDemo { 2 private

Spring-----配置及对象初始化(1)

一,配置文件进行Spring初始化 1,配置文件编写 <?xml version="1.0" encoding="utf-8" ?> <configuration> /************* 这里会报异常“Spring.Context.Support.ContextRegistry”的类型初始值设定项引发异常.把配置注释掉就行了 <startup> <supportedRuntime version="v4.0