=============================================================================
=============================================================================
涉及到的知识点有:
---------------------------------------
-----------------------------------------------------------------------------
=============================================================================
=============================================================================
1:成员变量和局部变量的区别(理解)
(1)在类中的位置不同:
成员变量:在类中方法外。
局部变量:在方法定义中或者方法声明上(即形参)。
(2)在内存中的位置不同:
成员变量:在堆中。
局部变量:在栈中。
(3)生命周期不同:
成员变量:随着对象的创建而存在,随着对象的消失而消失。
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失。
(4)初始化值不同:
成员变量:有默认值。
局部变量:没有默认值,必须定义,赋值,然后才能使用。
(5)注意事项:
局部变量名称可以和成员变量名称一样,但是在方法中使用该变量的时候,采用的是就近原则(先找小范围,再找大范围)。
-----------------------------------------------------------------------------
2:类作为形式参数的问题?(理解)
(0)之前学的形式参数问题:
基本数据类型(数值型、字符型、布尔型):形式参数的改变不影响实际参数。
引用数据类型(类、接口、数组):形式参数的改变会直接影响实际参数。
(1)如果一个方法的形参的数据类型是一个类时(即引用数据类型),这里的形参其实需要的是该类的一个具体的对象。
如下图所示01:
-----------------------------------------------------------------------------
3:匿名对象(理解)
(1)就是没有名字的对象(是对象的一种简化表示形式)。
(2)匿名对象的应用场景:
A:对象调用方法仅仅一次的时候。
注意:调用多次对象的时候,不适合。
那么,这种匿名对象调用方法有什么好处吗?
有,匿名对象调用方法完毕后就是垃圾。可以被垃圾回收器回收,提高内存使用效率。
B:匿名对象可以作为实际参数进行传递。
如下图所示02:
-----------------------------------------------------------------------------
4:封装(理解)
(1)是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
(2)好处:
A:隐藏实现细节,提供公共的访问方式。
B:提高了代码的复用性。
C:提高了代码的安全性。
(3)设计原则
把不想让外界知道的实现细节给隐藏起来,把属性隐藏,提供公共的访问方式。
(4)private是封装的一种体现之一。
封装体有这几个:
(1)类
(2)方法
(3)private修饰成员变量
-----------------------------------------------------------------------------
5:private关键字(掌握)
(0)是一个权限修饰符。
(1)私有的意义,可以修饰成员变量和成员方法。(一般来说,private多用来修饰成员变量,少用来修饰成员方法。)
(2)特点:
被private修饰的成员只能在本类中被访问。要想访问它,它就要对外提供公共的访问方式。
(3)private的应用:
以后再写一个类的时候:
把所有的成员变量给private了。
提供对应的getXxx()/setXxx()方法。
-----------------------------------------------------------------------------
6:this关键字(掌握)
(0)name = name; //把自己赋值给自己,没有任何意义。(变量的使用规则:就近原则)
(1)代表当前类的引用对象。简单的记,它就代表当前类的一个具体对象。
记住:哪个对象调用方法,在该方法内部的this就代表哪个对象。
(2)this的应用场景:
A:解决了局部变量隐藏成员变量的问题。
B:其实this还有其他的应用,其他用法后面和super一起讲解。
如下图所示03/04:
-----------------------------------------------------------------------------