zoukankan      html  css  js  c++  java
  • 类的执行先后顺序

     class A {

        static {
            System.out.print("1");
        }

        public A() {
            System.out.print("2");
        }
    }

    class B extends A{

        static {
            System.out.print("a");
        }

        public B() {
            System.out.print("b");
        }
    }

    public class Hello {

        public static void main(String[] args) {
            A ab = new B();
            ab = new B();
        }

     
    答:执行结果:1a2b2b。创建对象时构造器的调用顺序是:先初始化静态成员,然后调用父类构造器,再初始化非静态成员,最后调用自身构造器。  
    第一次调用函数,static变量,初始化。
    第二次,及以后,调用函数,static变量,不会初始化。
     
    一般情况下,需要用到某个类的时候,都必须先实例化这个类,才能对其进行调用。
    static修饰的类成为静态类,静态类中只能包含静态成员(被static修饰的字段、属性、方法),不能被实例化,不能被继承;非静态中可以包含静态成员。  
     
    说明:ClassA类为非静态类,但其中的方法Fun()为静态方法,所以在ClassB中调用时不实例化ClassA类(而且不能实例化),直接调用其成员,语法为“类名.成员”。
     
    说明:ClassA类为非静态类,但其中的方法Fun()为静态方法,所以在ClassB中调用时不实例化ClassA类(而且不能实例化),直接调用其成员,语法为“类名.成员”。
     

     3、static修饰符(拓展):

           (1) 用来修饰类或类的成员,这时不需要创建实例就能访问(而且不能实例化),在被调用的时候自动实例化,且在内存中产生一个实例。当含有静态成员的非静态类实例化出对象后,这些对象公用这些静态成员,通过类名或对象名都能访问它们。

    当能力支撑不了野心时,就该静下心来学习!
  • 相关阅读:
    如何去重一个Oracle表
    配置Eclipse来开发Java 程序
    在windows上使用opera mini
    Oracle OLAP 介绍
    一个Batch作业调度系统构思
    how to Use Subversion with TortoiseSVN
    java official Design Pattern
    how to install ubuntu OS combined with Windows
    确保DWBI项目成功的几个关键点
    spinner 读取sqlite
  • 原文地址:https://www.cnblogs.com/1234cjq/p/7195962.html
Copyright © 2011-2022 走看看