• Java基础毕向东day05 对象与对象的区别,匿名内部类,函数的执行流程。


    1.Car c = new Car();

       Car c2 = new Car();

      1> c 和 c2之间的区别?

       

    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Car c = new Car();
    		Car c2 = new Car();
    		System.out.println(c == c2);
    	}
    }
    class Car{
    	int number = 4;
    	String color = "red";
    }
    

      输出结果:false

        表明,c和c2两个是不同的存储空间。因为在堆中的位置不一样。

         2> 匿名内部类,new Car();

              使用规则:1.如果是匿名内部类使用一次,那么用匿名内部类比较合适。

                            2.如果是多次要使用匿名内部类,就要给匿名内部类命名,不然在内存中就是垃圾了。

        3>java把程序执行的流程信息都放在了栈中,可以画出堆栈执行流程图。

    总结:堆中放实例化的对象,栈中放执行流程的方法信息。如果函数中包含函数,比如函数A中调用函数B,函数B中调用函数C,那么,c 函数是属于栈顶,b函数是属于栈顶下面的那个,A函数是属于栈底的那个元素。

            意思就是说明,C函数最新执行完成,然后就是B函数,再然后就是A函数。

    2.封装:

    3.this关键字,

       1>表示本类对象的引用,用户传入参数同名的情况。

       2>this();表示可以调用本类的构造函数,也可以传值(“hhhh”);

       3>什么this();要放在第一行?如何不放在第一行,会有什么情况发生?

            this.name = name;

            this();

           那么这段代码肯定会报错,因为,this()只能在构造函数中互相调用,所以,在调用this()之前已经初始化了 this代表的对象。

          本来,this.name 已经初始化了,this类的name属性,而打印的时候,this();什么都没有。所以不符合逻辑。

  • 相关阅读:
    Windows性能计数器应用
    Azure Oracle Linux VNC 配置
    Azure 配置管理系列 Oracle Linux (PART6)
    Azure 配置管理系列 Oracle Linux (PART5)
    Azure 配置管理系列 Oracle Linux (PART4)
    Azure 配置管理系列 Oracle Linux (PART3)
    Azure 配置管理系列 Oracle Linux (PART2)
    vagrant多节点配置
    docker基本操作
    LINUX开启允许对外访问的网络端口命令
  • 原文地址:https://www.cnblogs.com/childhooding/p/4571000.html
Copyright © 2020-2023  润新知