方法的调用:
- 有返回值: 返回值类型 变量名 = 方法名([参数]);
- 无返回值: 方法名([参数]) // 实参
- jvm将内存换分为很多区域,栈和堆
- 我们将变量分为局部变量和实例变量
- 我们方法里面保存的变量都是局部变量.我们在方法调用的时候,将栈帧(方法 局部变量表)保存在栈里
局部变量表保存的是局部变量 - 当数据类型为引用数据类型,数据保存在堆里,变量名保存在栈里,里面保存的值是它对应的数据在堆内存里面的地址
方法的重载:
- 方法的名字相同.但是方法的参数个数或者类型不相同 二者满足其一即可
创建对象:
-
语法:
类名 对象名 = new 类名(); 我们就能根据对应的模板创建出一个对象 -
调用对象的属性和方法:
- 属性:
赋值: 对象名.属性名 = 值 给对应的对象的属性赋值
获取: 对象名.属性名 - 行为:
[返回类型 变量名 = ]对象名.方法名([实参列表]);
- 属性:
-
内存分析:
java中,方法在运行的时候,会在栈内存产生一个栈帧,栈帧里面保存了该方法的里面的变量(局部变量)【局部变量表】 -
局部变量: 在方法中定义的变量我们称之为局部变量,也就是说这个变量的作用范围只能在该方法内部,出了这个
方法就不能使用了 -
全局变量: 在类中定义的而变量我们称之为全局变量, 在类中定义的属性就是全局变量,在该类中任何一个位置都可以访问到
在方法中,如果局部变量和全局变量重名了,我们使用变量时,优先使用的局部变量,在此情况下,如何访问全局变量我们后面讲注意点:
- 局部变量我们使用的时候必须赋初始值,而全局变量(成员变量)我们在定义的时候不需要赋初始值
- 局部变量随着方法的调用完毕而消失,全局变量随着对象的消失才会消失
总结:
-
当局部变量是基本数据类型时,对应的数据保存在栈中
-
当局部变量是引用数据类型时,对应的数据保存在堆内存中,栈内存保存的是对应的对象在堆内存的内存地址
-
根据类创建对象时,类中的全局变量(属性)会便随着对象保存在堆中
-
我们使用某个类创建对象时,该类只会加载一次,然后我们根据这个类可以创建出很多的对象
面向对象三大特征:
封装 继承 多态
- 封装: 封装为了提高安全性 我们需要将内部的细节封装起来,不能在随便的操作内部的数据了,
但是我们可以提供对应的方法来操作我们的内部的数据- 我们在java中使用private关键修饰我们的属性,这样在类的外部就不能随意访问我们类中的属性
- 在类的外部我们只有通过类中提供的对应的方法访问对应的属性
- 提供的方法: setxxx和getxxx方法:
- 操作属性: 取值: getxxx,赋值: setxxx
- 将这个局部变量的值赋值给全局变量 当全局变量和局部变量重名时,我们想使用全局变量我们只需要在变量的前面加一个this关键字即可