static静态数据的初始化

package com.demo.book;

public class StaticInitialization
{
    static Table table = new Table();
    static Cupboard cupboard = new Cupboard();

    public static void main(String[] args)
    {
        new Cupboard();

        new Cupboard();

        table.f2(3);

        cupboard.f3(1);
    }
}

class Bowl{
    Bowl(int marker)
    {
        System.out.println("(" + marker + ")");
    }

    void f1(int marker)
    {
        System.out.println("f1(" + marker + ")");
    }
}

class Table
{
   static Bowl bowl1 = new Bowl(1);
   static Bowl bowl2 = new Bowl(2);

   Table()
   {
       System.out.println("Table()");
       bowl2.f1(1);
   }

   void f2(int marker)
   {
       System.out.println("f2(" + marker + ")");
   }
}

class Cupboard
{
    Bowl bowl3 = new Bowl(3);
    static Bowl bowl4 = new Bowl(4);

    Cupboard()
    {
        System.out.println("Cupboard()");
        bowl4.f1(2);
    }

    void f3(int marker)
    {
        System.out.println("f3(" + marker + ")");
    }

    static Bowl bowl5 = new Bowl(5);
}

static静态数据的初始化,布布扣,bubuko.com

时间: 2024-08-01 22:48:13

static静态数据的初始化的相关文章

C++类中常量数据成员和静态数据成员初始化

常量数据成员初始化原则: 在每一个构造函数的初始化列表中初始化 静态数据成员初始化原则: 类内声明,类外初始化(因为它是属于类的,不能每构造一个对象就初始化一次) // test_max.cpp : 定义控制台应用程序的入口点. #include "stdafx.h" #include <iostream> #include <vector> using namespace std; class A { public: A(int i):a(0) {} A():

JAVA编程思想(第4版) 静态数据的初始化

无论创建多少个对象,静态数据永远只占用一份存储空间.static关键字不能应用于局部变量,因此它只能作用于域.如果一个域是静态的基本类型域,且没有对它进行初始化,那么它就会获得基本类型的标准初值,而如果它是一个对象的引用,则默认初始值为null.例子如下: package test; class Bowl{ Bowl(int marker){ System.out.println("Bowl("+marker+")"); } void f1(int marker){

static静态数据成员

类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员.和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则.同时,静态数据成员还具有以下特点: 1.C++静态数据成员的定义. 静态数据成员实际上是类域中的全局变量.所以,静态数据成员的定义(初始化)不应该被放在头文件中. 其定义方式与全局变量相同.举例如下: xxx.h文件 1. class base{      2. private:      3. static con

类的静态数据成员初始化问题

1. 静态数据成员在类声明中声明,在包含类方法的文件中初始化.初始化时使用作用域运算符来指出静态成员所属的类.但如果静态成员是整形const或枚举型const,则可以在类声明中初始化. C++ primer plus P426-P427类静态成员的声明和初始化 //strnbad.h class StringBad { private: static int num_strings; … }; //strnbad.cpp int StringBad::num_strings = 0; 不能在类声

静态数据的初始化

package me.ybleeho; 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()"

关于静态数据的初始化顺序问题

//代码如下,摘自java编程思想: class Bowl { Bowl(int maker) { System.out.println("Bowl(" + maker + ")"); } void f1(int maker) { System.out.println("f1(" + maker + ")"); } } class Table { static Bowl bowl1 = new Bowl(1); Table()

c++:静态数据成员

一 . 静态数据成员 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员.和其它数据成员一样,静态数据成员也遵守public/protected/private访问规则.同时,静态成员还具有以下特点: 1. 静态数据成员的定义. 静态数据成员实际上是类域中的全局变量.所以,静态数据成员的定义不应该被放在头文件中.静态数据成员初始化时不受private和protected访问限制. 注意:不要试图在头文件中定义静态数据成员.在大多数情况下,这样做会引起重复定义这样

C# static 静态构造函数

static   静态构造函数, 1.用于对静态数据的初始化 2.前面不能有参数不能有修饰符,不能被调用 3.当类被加载时,类的静态构造函数自动被调用,最多只执行一次 class Program     {         private static int count = 0;         static Program()         {             Console.WriteLine("我是静态构造函数,我被加载了!");             count+

静态数据成员和函数

静态数据成员 类是类型而不是具体的数据对象,类的对象都是该类的实例,每个类对象都具有自己的数据成员,而且是相互独立,各占内存空间.然而,程序中往往需要让类的所有对象在类的范围内共享某个数据.声明为static的类成员能够在类的范围中共享,称之为静态成员. 一.全局变量与静态数据成员 希望在同类的多个对象之间实现数据共享,可以用静态的数据成员实现. 使用静态数据成员不会破坏隐藏的原则,即保证了安全性. 二.静态数据成员特点 在每个类中只有一个拷贝,由该类的所有对象共同维护和使用静态数据成员的值对每