final、static(Java)和const、static(C#)

转载 2012年03月23日 16:04:53

现在看看以下等价关系:

C#中的static 和Java中的static

简单,两者用法完全是一致的。从两方面讨论:

1. 变量是属于类的,不是实例级别的。只能通过类名调用,不能通过实例调用。

2. 如果在定义时就赋值了,那么在类初始化的时候,最先完成所有静态变量的赋值。但是要注意,所有静态变量的初始化顺序是无法确定的。

C# 中的const 和Java中的finnal

很长一段时间我一直认为两者是相同的作用,无非是变量初始化后不能更改,即只能在定义时或者构造函数中赋值。然而这仅仅只是片面的,下面将为大家详细分析:

1.修饰变量

准确的说C#中的const 等价于 Java中的static final,也就是说,Java中final不具有static的功能。而C#中的const具有static的功能。因此在C#中 public static const string 等将于 public const string。

2.修饰类和方法

此时Java中的final类似C#中的sealed,就是说,final修饰的类不能被继承,final修饰的方法不能被覆盖。

而C#中的const不能修饰类和方法。

问题:

1. 私有静态成员的作用(private static 变量)

字面表示私有的,类外不能使用;静态的,全局变量。看上去很矛盾,又不能被类外使用,要全局的有什么用。问得好,类中全局也是很有意义的,例如 private static int a = 5,那么就可以保证变量a在类的初始化过程中将被优先初始化(在构造函数执行之前)。这样如果对象A的初始化需要对象B的实例,那么就可以用这种申明,以保证在类A在构造函数中能够使用类B的实例。同时private又能够保证类B的实例只能在类A中使用,起到很好的密封作用。

2. 私有最终成员作用(private final 变量)

在类构造函数完成前必须对该成员完成初始化,一旦定义不许更改;该成员只能在本类中使用。实例,子类中都不能使用。

private static final修饰的成员在申明的时就被赋值,保证在构造函数中可以被使用,一个被private static final修饰的成员通常表示其他组件的一个实例,且变量是类中的全局变量。

private final 修饰的成员在构造中被赋值,表示它是该类全局的私有成员变量,且该类的构造需要传入他们的初始值,才能完成类的初始化。

java基础学习——final,static,const在使用上有什么区别

JAVA中——final、static final: final修饰类:该类不可继承 final修饰方法:该方法不能被子类覆盖(但它不能修饰构造函数) final修饰字段属性:属性值第一次初始化后不...

JAVA中的关键字static,final和const

一、static 1.static修饰变量 C的局部变量,全局变量(即外部变量)和静态变量 局部变量:在函数内定义的变量,采用动态存储方式。 全局变量:在函数外定义的变量,采用静态存储方式。 exte...
  • cwdysg
  • cwdysg
  • 2017年03月09日 08:41
  • 2301

Java--this,static,final,const用法

一、this 用类名定义一个变量的时候,定义的应该只是一个引用,外面可以通过这个引用来访问这个类里面的属性和方法,那们类里面是够也应该有一个引用来访问自己的属性和方法纳?Java提...

java中final和static的区别

  • 2013年03月24日 04:27
  • 36KB
  • 下载

static、this、super、final的JAVA用法

  • 2013年05月15日 16:43
  • 53KB
  • 下载

php面向对象全攻略 (十) final static const关键字的使用

14.final 关键字的应用 这个关键字只能用来定义类和定义方法,不能使用final 这个关键字来定义成员属性,因 为final 是常量的意思,我们在PHP 里定义常量使用的是define(...
  • vvvbird
  • vvvbird
  • 2016年05月04日 10:26
  • 892

继承+关键字(static+const+instanceof+final+)+protected

extends Person.class.php Student.class.php Teacher.class.phpPerson.class.php------------------...

php面向对象类中的$this,static,final,const,self及双冒号 :: 这几个关键字使用方法。

php中this,self,parent三个关键字的作用 this,self,parent三个关键字之间的区别,从字面上比较好理解,分别是指这、自己、父亲。我们先建立几个概念,这三个关键字分别是用...
  • tham_
  • tham_
  • 2014年12月20日 12:23
  • 3688

php面向对象之final static const关键字的使用

这个关键字只能用来定义类和定义方法,不能使用final 这个关键字来定义成员属性,因为final 是常量的意思,我们在PHP 里定义常量使用的是define()函数,所以不能使用final 来定义成员...

final static const关键字的使用

14.final 关键字的应用 这个关键字只能用来定义类和定义方法,不能使用final 这个关键字来定义成员属性,因 为final 是常量的意思,我们在PHP 里定义常量使用的是define(...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:final、static(Java)和const、static(C#)
举报原因:
原因补充:

(最多只允许输入30个字)