每天100行代码20130513

来源:互联网 发布:通用汽车dps编程软件 编辑:程序博客网 时间:2024/06/05 20:41
/*Code20130513Test 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) */