/*Code20130513
Test Static*/
/*static 数据只占用一份存储区域*/
/*static 用于计数*/
public class StudentNum {
public static void main(String args[]) {
new Student(); // 增加新对象
new Student(); // 增加新对象
new Student(); // 增加新对象
}
}
class Student {
private static int count = 0; // 所有对象共享此属性
public Student() {
count++; // 只要有对象产生就应该自增
System.out.println("产生了" + count + "个学生!");
}
}/*
* Output: 产生了1个学生! 产生了2个学生! 产生了3个学生!
*/
// 虽然产生学生这个例子不是太合适 大家理解意思就行了*/
/* 静态数据的初始化 */
public class StaticInitializaion {
public static void main(String[] args) {
System.out.println("Creating new Cupboard() in main");
new Cupboard();
System.out.println("Creating new Cupboard() in main");
new Cupboard();
table.f2(1);
cupboard.f3(1);
}
static Table table = new Table();
static Cupboard cupboard = new Cupboard();
}
class Bowl {
Bowl(int marker) {
System.out.println("Bowl(" + marker + ")");
}
void f1(int marker) {
System.out.println("f1(" + marker + ")");
}
}
class Table {
static Bowl bowl1 = new Bowl(1);
Table() {
System.out.println("Table");
bowl2.f1(1);
}
void f2(int marker) {
System.out.println("f2(" + marker + ")");
}
static Bowl bowl2 = new Bowl(2);
}
class Cupboard {
Bowl bowl3 = new Bowl(3);
static Bowl bowl4 = new Bowl(4);
public Cupboard() {
System.out.println("Cupboard()");
bowl4.f1(2);
}
void f3(int marker) {
System.out.println("f3(" + marker + ")");
}
/*static 关键字,后面跟随一个方法主体。与其他static 初始化一
样,这段代码仅执行一次——首次生成那个类的一个对象时,或者首次访问属于那个类的一个static 成员时
(即便从未生成过那个类的对象)*/
class Cup {
Cup(int marker) {
System.out.println("Cup(" + marker + ")");
}
void f(int marker) {
System.out.println("f(" + marker + ")");
}
}
class Cups {
static Cup cup1;
static Cup cup2;
static {
cup1 = new Cup(1);
cup2 = new Cup(2);
}
Cups() {
System.out.println("Cups");
}
}
public class ExplicitStatic {
public static void main(String[] args) {
System.out.println("Inside main()");
Cups.cup1.f(99);
}
}/*
* Output:
* Inside main()
* Cup(1)
* Cup(2)
* f(99)
*/
每天100行代码20130513
最新推荐文章于 2017-11-20 20:40:29 发布