博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java与c# 对象初始化的区别
阅读量:5047 次
发布时间:2019-06-12

本文共 2470 字,大约阅读时间需要 8 分钟。

首先看下c#

1 class Program  2     {
3 static void Main(string[] args) 4 {
5 new Child(); 6 } 7 } 8 9 10 class Faher 11 {
12 public static Test FSTest = new Test("基类静态成员"); 13 14 public Test FTest=new Test("基类实例成员"); 15 16 static Faher() 17 {
18 Console.WriteLine("基类静态构造函数"); 19 } 20 21 public Faher() 22 {
23 Console.WriteLine("基类构造函数"); 24 } 25 26 } 27 28 class Child : Faher 29 {
30 public static Test CSTest =new Test("子类静态成员"); 31 32 public Test CTest=new Test("子类实例成员"); 33 34 static Child() 35 {
36 Console.WriteLine("子类静态构造函数"); 37 } 38 39 public Child() 40 {
41 Console.WriteLine("子类构造函数"); 42 } 43 } 44 45 46 //用于做成员的类 47 class Test 48 {
49 public Test(string info) 50 {
51 Console.WriteLine(info); 52 } 53 }

程序结果:

子类静态成员

子类静态构造函数
子类实例成员
基类静态成员
基类静态构造函数
基类实例成员
基类构造函数
子类构造函数


再来看看java的

1 public class Show  2 {
3 public static void main(String[] args) 4 {
5 new Child(); 6 } 7 } 8 9 class Father 10 {
11 public static Test FSTest=new Test("基类静态成员"); 12 13 public Test FTest=new Test("基类实例成员"); 14 15 public Father() 16 {
17 System.out.println("基类构造函数"); 18 } 19 20 static 21 {
22 System.out.println("基类静态块"); 23 } 24 } 25 26 class Child extends Father 27 {
28 public static Test CSTest=new Test("子类静态成员"); 29 30 public Test CTest=new Test("子类实例成员"); 31 32 public Child() 33 {
34 System.out.println("子类构造函数"); 35 } 36 37 static 38 {
39 System.out.println("子类静态块"); 40 } 41 42 } 43 44 45 //用于做成员的类 46 class Test 47 {
48 public Test(String info) 49 {
50 System.out.println(info); 51 } 52 }

程序结果:

基类静态成员

基类静态块
子类静态成员
子类静态块
基类实例成员
基类构造函数
子类实例成员
子类构造函数


由于以上的程序可以看出

c#初始化顺序为

子类静态成员-->子类静态构造函数-->子类实例成员-->基类静态成员-->基类静态构造函数-->基类实例成员-->基类构造函数-->子类构造函数

java初始化顺序为

基类静态成员-->基类静态块-->子类静态成员-->子类静态块-->基类实例成员-->基类构造函数-->子类实例成员-->子类构造函数

 

总结一下:

c#创建对象的时候会为先初始化子类各成员再初始化基类各成员静态成员(而静态成员总先于实例成员),java创建对象是总是先初始化基类静态成员和子类静态成员,然后才是基类实例成员和子类实例成员,c#和java最后是先调用基类构造函数最后调用子类构造函数

要点:

1 c#先子后基,java先基后子

2 静先于实

3 先基构后子构

 

 

转载于:https://www.cnblogs.com/mu-mu/archive/2011/12/22/2297518.html

你可能感兴趣的文章
Mongodb Manual阅读笔记:CH9 Sharding
查看>>
AX2009使用NPOI导出EXCEL2007
查看>>
如何删除NSDictionary或NSArray中的NSNull
查看>>
ueditor 结合easyui使用
查看>>
thymeleaf学习笔记
查看>>
进程(第一部分)
查看>>
springMVC总结
查看>>
Linux 命令速记本
查看>>
python中import xx 的含义
查看>>
关于JS的Date对象的探究
查看>>
Typora的使用
查看>>
百度竞价
查看>>
JQ 操作样式,单选按钮跟复选框
查看>>
python中的自测语句是什么?
查看>>
JQuery 基础:
查看>>
Proj.4坐标系统创建参数
查看>>
我有一个 APP 创意,如何将其实现?
查看>>
SVN改地址eclipse怎么同步
查看>>
Xadmin查询
查看>>
Jsf 页面导航Navigation总结
查看>>