面向对象
1.java中参数传递问题:
基本类型:形式参数的改变对实际参数没有影响。因为函数被调用是进栈,不在使用就消失
引用类型:形式参数的改变直接影响实际参数 因为函数被调用进栈,但是引用类型存在堆区,
指向的地址值,改变了堆区的数据,下次使用时候继续指向地址值。
注意事项:关键是看传递的是实际值还是地址值。字符串特殊情况
2.面向对象的理解:
面向过程:以函数为基础,强调是过程即功能行为
面向对象:以对象为基础,强调的是对象,封装了功能
面向对象是基于面向过程
面向对象的思想特点:
是一种更符合人们思考习惯的思想
可以将简单的事情简单化
将程序员从执行者转换为了指挥者
3.如何更好的体现面向对象的思想?
分析系统中的哪些对象
明确这些对象可以做什么即具备什么功能
明确对象之间的关系
4.面向对象的特征:
封装 继承 多态
5.类与对象的关系:
类:是属性和行为的集合是一种抽象的概念
成员变量------ 属性 定义类中,方法外面
成员方法------ 行为
对象:就是类的具体的存在和体现
创建对象:类名 变量名=new 类名();
调用成员变量:变量名.成员变量名;
调用成员方法:变量名.成员方法名();
注意事项:
如果调用有参数的成员方法就需要注意String 类型的需要带引号
如果有返回值的成员方法,需要接收返回值,这时候就需要注意返回值的类型。
6.什么时间定义成员变量:
描述事物的属性就应该定义为成员变量,否则就定义为局部变量
7.成员变量和局部变量的区别:
定义位置区别:
成员变量:在类中 方法外
局部变量:在方法中或者方法的形式参数
初始化值:
成员变量:有默认初始化值
局部变量:没有默认初始化值需要赋值
存储位置的区别:
成员变量:存储在堆,随着对象的存在而存在随着对象的消失而消失
局部变量:存储在栈中随着方法的调用而存在随着方法调用的完毕而消失
注意事项:所有的变量使用前都必须进行初始化(这句话是正确的)
查找变量的顺序:
局部变量----成员变量------父类-----报错(就近原则)
8.匿名对象:
没有名字的对象
应用场景:
当对对象方法调用一次时候(有利于内存的优化)
匿名对象可以作为实际参数进行传递(就是引用类型作为实际参数)
|
|