面向对象思想
面向过程:关注的是步骤和过程
面向对象:关注的是对象
面向对象是基于面向过程的
面向对象的特点:
a: 是一种更符合人们思考习惯的思想
b: 把复杂的事情简单化了
c: 从执行者变成指挥者
类与对象以及引用
事物 类
属性 成员变量
行为 成员方法
属性: 就是事物的描述信息
行为: 就是该事物可以做到事情
成员变量: 和之前定义变量一样,只不过位置不同. 在类中方法外
成员方法: 和之前定义方法一样,只不过去掉static
类: 就是一组相关属性和行为的集合,是一个抽象的东西
对象: 就是该类的一个具体体现
使用类:
创建对象: 格式: 类名 对象名 = new 类名();
访问成员变量的格式: 对象名.变量名 ;
访问成员方法的格式: 对象名.方法名(...)
局部变量和成员变量的区别
a: 在类中的位置不同
局部变量: 方法定义中或者方法声明上的变量
成员变量: 在类中方法外
b: 在内存中的位置不同
局部变量: 在栈内存
成员变量: 在堆内存
c: 生命周期不同:
局部变量: 随着方法的调用而产生,随着方法的消失而消失
成员变量: 随着对象的创建而产生,随着对象的消失而消失
d: 默认值的问题:
成员变量: 有默认值(系统给定)
局部变量: 没有默认值,必须先赋值,然后在使用
变量的访问注意事项:
a: 局部变量可以和成员变量的名称一致
b: 变量在访问的时候遵循"就近原则"
java语言的参数传递问题
基本数据类型参数传递,形式参数的改变对实际参数没有影响
引用数据类型的参数传递,形式参数的改变对实际参数是有直接影响的
java语言中只有值传递 ,没有址传递.
一个方法上如果形式参数是类类型的变量,我们如何调用?
如果以后看到某一个方法上的形式参数是一个类类型的变量,那么在调用的时候需要传递一个该类的对象
匿名对象
匿名对象: 没有名字的对象
Student s = new Student();
// 匿名对象
new Student();
作用:
a: 调用方法,仅仅调用一次
b: 作为参数传递
封装(private)
private特点:
a: private是一个修饰符
b: private可以修饰成员变量也可以修饰成员方法
c: 被private修饰的成员只能在本类中使用
this关键字
this关键字: 代表的是本类对象的一个引用,谁调用我方法中的this就代表谁.
this存在的解决的问题:
就是局部变量隐藏了成员变量的时候,我们可以通过this来明确访问的是成员变量
|
|