只需将static关键字放在定:义之前,就可以将字段或方法设定为static
使用static变量有两种方法:1直接用类名访问,定义该类的对象访问
public class T1 {
static int i=47;
public static void main(String[] args)
{
System.out.println(T1.i);
T1 t1=new T1();
T1 t2=new T1();
System.out.println(t1.i);
System.out.println(t2.i);
}
}
返回值为:
47
47
47
这里T1.i t1.i t2.i指向同一个存储空间
T1.i++;
System.out.println(T1.i);
System.out.println(t1.i);
System.out.println(t2.i);
输出为:
48
48
48
使用类名.static变量是首选方式,这不仅是能直观的看出它是一个static变量,而且在某些情况下它还未编译器进行优化提供了更好的机会。
类似逻辑也应用于静态方法。既可以通过类名.方法名来使用静态方法,也可以对象来调用静态方法。
class A1
{
static void f()
{
T1.i++;
}
}
public class T1
{
static int i=47;
public static void main(String[] args)
{
System.out.println(T1.i);
A1 a=new A1();
a.f();
System.out.println(T1.i);
}
}
输出
47
48
当static作用于某个数据成员时,肯定会改变数据创建的方式(因为static数据成员对某个类来说都只有一份存储空间,而非static数据成员是对每个对象有一个存储空间)
import java.util.*;
public class T1
{
public static void main(String[] args)
{
Date today=new Date(); //一旦创建Date对象就将它的值自动转化为String类型
System.out.println(today);
}
}
java.lang 包自动导入到每个java文件中
Date类在java.util包中
关于本书中用print代替System.out.println(),我看了两个博客:
在这个博客中下载的两个文件 http://www.cnblogs.com/togeek/p/thiking_in_java_net_mindview_util_package.html
在这个博客中顺利执行操作 http://blog.sina.com.cn/s/blog_631a75580100vcig.html
==================38页3.1中程序结束================