zoukankan      html  css  js  c++  java
  • 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();什么都没有。所以不符合逻辑。

  • 相关阅读:
    骗子网站,X毛都没有,骗我九十九
    xssgame挑战wp
    某xss挑战赛闯关笔记
    committed与urgent的区别
    KahnProcessNetwork的Python实现
    网络层数
    使用matlab用优化后的梯度下降法求解达最小值时参数
    使用matlab画半透明椭圆
    关系代数(Relation Algebra)与SQL语句的对应关系
    one vs all -- 将01分类器用于多类分类问题
  • 原文地址:https://www.cnblogs.com/childhooding/p/4571000.html
Copyright © 2011-2022 走看看