• 类的执行先后顺序


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

    当能力支撑不了野心时,就该静下心来学习!
  • 相关阅读:
    wode.
    python中迭代器和生成器。
    Embeded linux 之 UBIFS文件系统
    Windows下Git安装和使用
    套接字 之 windows与linux 差异
    Embeded linux之RTL8188EU/RTL8188ETV使用
    嵌入式Linux之“+”版本问题
    Uboot之net
    Embeded linux之reboot
    Embeded linux之cifs文件系统
  • 原文地址:https://www.cnblogs.com/1234cjq/p/7195962.html
Copyright © 2020-2023  润新知