Java中static关键字
来源:互联网 发布:华语男唱作人排名知乎 编辑:程序博客网 时间:2024/06/12 18:50
- 静态变量
- 静态方法
静态代码块
在java类中,一般类的成员必须通过类的对象来访问。但是,也可以创建一个不需要特定实例变量的引用就可以访问的成员。为了创建这种成员,需要在成员声明前加上关键字static。
访问:类外使用static成员,只需 类名.变量名 或者 类名.方法名 即可,不需要new一个对象即可调用。例如,给类名为Animal的static变量name赋值时,可直接使用:
Animal.name = “dog”;
Animal.eat();//调用Animal类的eat()方法
1.静态变量
static变量相当于一个全局变量,该类的所有实例共用一个static变量。比如一个学校中的学生的名字、学号都不学校的名字都是一样的。如下代码演示静态变量与非静态变量的区别:
public class StaticDemo { int x; static int y;}public class Demo1 { public static void main(String[] args){ StaticDemo ob1 = new StaticDemo(); StaticDemo ob2 = new StaticDemo(); ob1.x = 10; ob2.x = 12; System.out.println("一个类的不同实例的非静态变量相互独立"); System.out.println("ob1.x="+ob1.x+" ob2.x="+ob2.x); StaticDemo.y = 30; System.out.println("一个类的不同实例共享一个静态变量"); System.out.println("ob1.y="+ob1.y+" ob2.y="+ob2.y); }}运行结果为:一个类的不同实例的非静态变量相互独立 ob1.x=10 ob2.x=12 一个类的不同实例共享一个静态变量 ob1.y=30 ob2.y=30
2.静态方法
调用方法前面已经说了,不再赘述。
作用:创建执行有用的功能,且不与任何对象有关。比如Math类中的很多方法,sqrt(),cos(),sin(),返回绝对值的abs(),返回对数的log()等。
注意:static方法有一些限制
只能调用其他static方法;
只能访问static数据;
没有this引用。
3.静态代码块
静态代码块中的内容是在创建对象之前就执行的工作。也就是,在首次载入这个类之前就执行static代码块,所以static代码块在该类用于其他任何用途前执行。
下面是关于static代码块的一个例子。
public class StaticBlock { static double rootof2; static double rootof3; static{ rootof2 = Math.sqrt(2.0); rootof3 = Math.sqrt(3.0); System.out.println("Inside static block."); } StaticBlock(String msg){ System.out.println(msg); }}Class Demo2(){ public static void main(String[] args){ StaticBlock ob = new StaticBlock("Inside Constructor"); System.out.println("Square root of 2 is:"+StaticBlock.rootof2); System.out.println("Square root of 3 is:"+StaticBlock.rootof3); }}运行结果: Inside static block. Inside Constructor Square root of 2 is:1.4142135623730951 Square root of 3 is:1.7320508075688772
以上代码中,主函数中创建了一个StaticBlock对象时,在载入这个类的时候已经执行了静态代码块中的内容,是先于构造器而执行的。
- Java 中 static 关键字
- java中static关键字
- Java中static关键字
- java中static关键字
- java中关键字:static
- Java中Static关键字
- java中static关键字
- Java中Static关键字
- java中static关键字
- Java中static关键字
- java中static关键字
- Java中static关键字
- java中static关键字
- Java中static关键字
- Java中static关键字
- java中static关键字
- java中static关键字
- JAVA中static关键字
- ASP自动隐藏数据库中内容为空的字段(以图片为例)
- 距离变换
- 机器学习实战笔记(Python)-01-K近邻算法(KNN)
- 编程题赏析
- 设计模式(1)
- Java中static关键字
- ACRA崩溃报告详解
- 文章标题
- C语言项目—银行储蓄系统
- HashMap源码分析(基于JDK1.6)
- 状压dp POJ3254+POJ1185
- 初入HTML-个人简历
- Mapped Statements collection already contains value for com.xxx.xxx
- ThoughtWorks技术专家详解:企业级区块链原来是这么玩的