当前位置:首页 > Java技术

Java VS .Net

canca19年前 (2007-09-22)Java技术393

Java

//C.java 

class A
  {
      public A()
      {
          PrintFields();
      }
      public void PrintFields(){}
  }
  class B extends A
  {
     int x=1;
     int y;
     public B()
     {
         y=-4;
     }
     public void PrintFields()
     {
        System.out.println(x);
         System.out.println("x=" + x + ",y=" + y);
     }
  }

public class C
{
   public static void main(String [] args)
   {
       B obj=new B();
       obj.PrintFields();
   }
}

C#

//C.cs

using System;

  class A
  {
      public A()
      {
          PrintFields();
      }
      public virtual void PrintFields(){}
  }
  class B:A
  {
     int x=1;
     int y;
     public B()
     {
         y=-4;
     }
     public override void PrintFields()
     {
         Console.WriteLine("x={0},y={1}",x,y);
     }
  }

public class C
{
   public static void Main(string [] args)
   {
       B obj=new B();
       obj.PrintFields();
       Console.Read();
   }
}

运行结果:

Java:

x=0,y=0

x=1,y=-4

C#:

x=1,y=0

x=1,x=-4

问题:同样的代码结果却截然不同。

结论:Java中对象在创造时,非静态属性在构造函数运行过后才被赋值。而C#却刚刚相反。Java中要想让属性先赋值,即要将该属性设置为静态(static)的。如果属性在执行构造函数之前先赋值与在执行构造函数之后才赋值都没有什么关系的。那就当我没说过话吧!!

扫描二维码推送至手机访问。

版权声明:本文由Ant.Master's Blog发布,如需转载请注明出处。

本文链接:https://iant.work/post/544.html

标签: Java技术
分享给朋友:

“Java VS .Net” 的相关文章

Socket与ServerSocket的问题

//服务器端:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintStream;import java.net.ServerSock…

Java语言的反射机制

    由于项目的需要,在项目中要实现即插即用的方式,也就是说可以动态地加载包,不用设置CLASSPATH路径。当项目发布时,不可能要用户来设置环境变量吧!因此,就要用到JAVA的反射机制了。昨天,我是在研究JAVA的...…

JAVA获得一个文件夹大小

在JAVA里没有现成的方法获取一个文件夹的大小,那么我们可以用递归的方法,获取文件夹的大小。    import  java.util.*;  import  java.io.*;  class  GetFileSi…

JAVA内部类终极实例

最近心情不好,不想说太多东西了!电脑坏了,我现在又病了. class ClassFactory{ private final static String userName = "Hello,My name is CAnca."; public static Thread in =…

过滤网页HTML标记

JAVA过滤HTML中的所有标记。非常好用!! package canca.regex; import java.util.regex.Matcher;import java.util.regex.Pattern; public class HtmlFilter {  priva…

Java安装后JDK/bin目录下的众多exe文件的用途

javac:Java编译器,将Java源代码换成字节代 java:Java解释器,直接从类文件执行Java应用程序代码 appletviewer(小程序浏览器):一种执行HTML文件上的Java小程序类的Java浏览器 javadoc:根据Java源代码及其说明语句生成的HTML文档 jdb…

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。