java常量静态变量_java静态变量、常量和方法

本文详细介绍了Java中的静态变量和方法,强调它们被类的所有对象共享,并存储在公共内存地址。静态变量和方法可以通过类名直接调用,不受实例对象的影响。设计原则指出,依赖于实例的数据应为实例变量,不依赖实例的方法应为静态。举例说明了静态方法如factorial(int n)的正确使用。
摘要由CSDN通过智能技术生成

(1)提示:静态变量被类中的所有对象所共享,静态变量不能访问类中的实例成员。

(2)如果想让一个类的所有实例共享数据,就要使用静态变量(static variable),也成为类变量。静态变量将变量值储存在一个公共的内存地址。因为他是公共地址所以如果某一个对象修改了静态变量的值,那么同一个类的所有对象都会受影响。

(3)静态方法和静态数据可以通过引用变量或他们的类名来调用。

(4)提示:使用类名 . 方法名(参数)的方式调用静态方法,使用“类名 . 静态变量”的方法访问静态变量。这会提高程序的可读性,因为可以很容易的识别出类中的静态方法和数据。

(5)因为静态方法和静态变量在类实例化之前就有,他们存在的时候可能没有实例对象,所以静态方法不能调用实例方法或者实例数据。(静态方法和变量不属于某个特定对象)

实例方法可以调用实例方法和静态方法,以及访问实例数据域和静态数据域。

设计指南:

如何判断一个变量或方法应该是实例的还是静态的?如果一个变量或方法依赖于类的某个具体实例,那就应该将它定义为实例变量或实例方法。如果一个变量或方法不依赖于类的某个具体实例,就应该将它定义为静态变量或方法。例如每个圆都有自己的半径,半径依赖于某个具体的圆。半径radius就是circle类的一个实例变量。

在Math类中没有一个方法是依赖于一个特定实例的,例如:random,pow,sin和cos。因此这些方法都是静态方法。

警告:

一个常见的设计错误就是将一个本应该声明为静态的方法声明为实例方法。例如:方法factorial(int n)应该定义为静态的,如下图所示,因为他不依赖于任何具体的实例。

public class Test{

public static int factorial (int n) {

for (int i = 1; i <= n; i++)

{

result += 1;

}

return result;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值