第三章 面向对象 3.1 面向对象特征: 封装(encapsulation)、继承(inheritance)、多态(polymorphism) 3.2 局部变量和成员变量的区别? | | | | | | | | | | | | | | | | 局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则. |
3.3 基本数据类型参数及引用数据类型参数传递 示例1:基本数据类型参数传递 file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps18BD.tmp.pngclass Demo { public static void main(String[] args){ int x = 3; show(x); System.out.println("x=" + x); } file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps18CE.tmp.png public static void show(int x){ x = 4; } } 说明: main方法打印x的值时。此时x指的是main方法中的x变量的值(show方法中的参数x已经随show方法一块出栈了)。所以,打印出来的x值为3而不是4。 示例2:引用数据类型参数传递 file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps18DE.tmp.pngclass Demo { int x = 3; public static void main(String[] args){ Demo d = new Demo(); d.x = 9; show(d); System.out.println(d.x); } file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps18DF.tmp.png public static void show(Demo d){ d.x = 4; } } 执行过程说明: show方法执行d.x=4后,堆内存中的实体对象的x属性值变为4。show方法执行结束,show方法出栈,show方法参数d也随之出栈。虽然show方法参数d出栈了,但是,由于main方法的变量d依然引用着堆内存中的实体对象,因此堆内存中的实体对象不会被垃圾回收器清除。而main方法打印d.x的值。此时,d指的是main方法中的引用变量x,d.x指的依然是堆内存中的实体对象中x的值。所以,打印出来的值为4而不是9。 3.4 匿名对象的应用场景: 答:①仅一次调用; ②当做参数传递; 3.5 构造函数的作用及构造方法的格式特点: 答:(1)作用:给对象的数据(属性)进行初始化。 (2)构造方法格式特点: ①方法名与类名相同(大小也要与类名一致); ②没有返回值类型,连void都没有; ③没有具体的返回值return。 3.6 一般函数和构造函数什么区别呢? 答:(1)构造函数:对象创建时,一创建就会调用与之对应的构造函数,并且只调用一次,对对象进行初始化。 (2)一般函数:对象创建后,需要函数功能时才调用,并且可以被调用多次。
|