zoukankan      html  css  js  c++  java
  • JAVA

    静态

    1. 静态初始化块

    (1)可初始化类的静态字段

    (2)静态初始化块只调用一次

    (3)创建子类时会调用父类的静态初始化块

    源代码:

    class Root

    {

    static{

    System.out.println("Root的静态初始化块");

    }

    {

    System.out.println("Root的普通初始化块");

    }

    public Root()

    {

    System.out.println("Root的无参数的构造器");

    }

    }

    class Mid extends Root

    {

    static{

    System.out.println("Mid的静态初始化块");

    }

    {

    System.out.println("Mid的普通初始化块");

    }

    public Mid()

    {

    System.out.println("Mid的无参数的构造器");

    }

    public Mid(String msg)

    {

    //通过this调用同一类中重载的构造器

    this();

    System.out.println("Mid的带参数构造器,其参数值:" + msg);

    }

    }

    class Leaf extends Mid

    {

    static{

    System.out.println("Leaf的静态初始化块");

    }

    {

    System.out.println("Leaf的普通初始化块");

    }

    public Leaf()

    {

    //通过super调用父类中有一个字符串参数的构造器

    super("Java初始化顺序演示");

    System.out.println("执行Leaf的构造器");

    }

    }

    public class TestStaticInitializeBlock

    {

    public static void main(String[] args)

    {

    new Leaf();

    }

    }

    结果截图:

    4)静态初始化块的执行顺序:先执行父类得的在执行子类的

    1. 静态字段

    static

    可用   类名+静态字段。

    2. 静态方法

    (1)类的静态方法只能访问累的静态变量

    (2)只能访问静态变量或静态方法内的变量

    (3)不能重写

    (4)可用   类名+静态方法。

    实验:

    1)静态方法中只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)?

    源代码:

    public class StaticWord {

    int x1=9;

    static int x2=8;

    static void display() {

    System.out.println(x2);

    System.out.println(new StaticWord().x1);//静态方法可以使用方法内的参数。

    }

       

        public static void main(String args[]) {

        

         StaticWord.display();

        

        }

    }

    结果截图:

    2)使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数。请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”

    源代码:

    public class StaticNum {

    static int count=0;

    public StaticNum() {

    count++;

    System.out.println("创建一个新对象!");

    }

    public static void main(String args[]) {

    for(int i=5;i>0;i--) {

    StaticNum temp=new StaticNum();

    }

    System.out.println("你创建了几个对象:"+count);

    }

    }

    结果截图:

    ...................................................
  • 相关阅读:
    [LUOGU] P3275 [SCOI2011]糖果
    [BZOJ] 2287: 【POJ Challenge】消失之物
    [BZOJ] 2131: 免费的馅饼
    [JZOJ] 5835. Prime
    [JZOJ] 5837.Omeed
    UF_CAMGEOM_ask_custom_points 封装缺陷
    NX Open 切削层加载
    NX Open 图层说
    c++ Dll调用
    VC操作Excel文件编程相关内容总结
  • 原文地址:https://www.cnblogs.com/floakss/p/7688932.html
Copyright © 2011-2022 走看看