• java学习——基础入门(3)


    本文为学习笔记,留作自用,不会记载的特别详细,如有错误,欢迎指正

     一、this与super

    this与super都指向对象,区别在于this指向当前对象,super指向父类对象

    二、static与类、对象的初始化

    static为静态标识,被static标记的成员变量、方法将会被在类被加载时初始化且只加载一次,并从属于类而非对象

    this可以调用静态成员变量,反过来则不行,因为static变量在类加载时初始化,此时不一定存在对象。

    我们知道子类在初始化时,会先调用父类的构造方法,我们结合static来一起看下

    public class PorblemSolution {
        static{
            System.out.println("static  1");
        }
        static{
            System.out.println("static  2");
        }
        public static void main(String[] args){
            Son s = new Son();
        }
    }
    
    class GrandFather{
        Person person = new Person("GrandFather");
        static{
            System.out.println("GrandFather   static");
        }    
        public GrandFather(){
            System.out.println("GrandFather   构造函数");
        }
    
    }
    
    class Father extends GrandFather{    
        Person person = new Person("Father");
        static{
            System.out.println("Father  static");
        }    
        public Father(){
            System.out.println("Father  构造函数");
        }
    }
    
    class Son extends Father{    
        Person person = new Person("Son");
        static{
            System.out.println("Son   static");
        }    
        public Son(){
            System.out.println("Son   构造函数");
        }
    
    }
    
    class Person{
        static{
            System.out.println("person static");
        }
    
        public Person(String str) {
            System.out.println("person "+str);
        }
    }

    执行结果如下:

    首先加载PorblemSolution类,按顺序执行2个静态初始化块,然后实例化Son对象,实例化前,会先

    加载父类GrandFather与Father,依次执行父类的静态初始化块,子类的静态初始化块,再然后初始化父类成员变量,执行父类构造方法,初始化子类成员变量,

    执行子类构造方法。

    争取早日不再是一只菜鸡
  • 相关阅读:
    zbb20180930 设计模式-单例模式
    zbb20180930 代理模式 -静态代理-jdk动态代理-cglib动态代理
    zbb20180929 thread java并发编程之Condition
    zbb20180929 thread 自旋锁、阻塞锁、可重入锁、悲观锁、乐观锁、读写锁、对象锁和类锁
    zbb20180929 thread notify()与notifyAll()的区别
    26、Jquery 基础
    25、Javascript 事件
    24、Javascript BOM
    23、Javascript DOM
    22、正则表达式
  • 原文地址:https://www.cnblogs.com/jchen104/p/14664887.html
Copyright © 2020-2023  润新知