Day06
方法回顾
public static 方法类型 方法名(变量类型I 变量,变量类型II 变量,...){
方法体;
return 返回值;
}
局部变量没有变量不会有默认值。
面向对象开发
- 面向过程注重每一个步骤都是亲力亲为,注重的是步骤
- 面向对象注重的是结果。
- 面向对象的三大特征:封装、继承、多态。
- 面向对象的好处
- 把复杂的问题简单化
- 有执行者变成指挥者
- 便于代码的扩展,与维护
- 面向过程与面向对象是相辅相成的,都不可以少。
类与对象
- 类是抽象的,用于描述一类的事物
- 类包括:
- 成员属性
- 成员方法
- 对象是类的具体表现形式
- 类是图纸,对象是实物。
public class Student {
private String name = "周星驰";
private int age = 60;
public void eat() {
System.out.println("就是一顿吃");
}
public void study() {
System.out.println("学习java,从入门到放弃");
}
}
-
注意:
- 成员方法没有修饰付static
- 成员属性写在类里;方法外面。
- 如果方法有返回值,且返回值类型是引用数据类型,传递的是内存地址。
- 成员方法的参数可以是引用数据类型
-
匿名对象:一次性对象,没有名字的对象 new Student()
-
匿名对象特点:
- 不在栈里开辟内存,但是会在堆里开辟空间。
- 这个对象使用完就会销毁,可以节省内存空间
-
情况1:getStudent(new Student());作为方法的参数;
-
情况2:new Student().study(); 调用类里的方法。
-
匿名对象给成员变量赋值没有任何意义。play(new String[]{“30”,“40”,“50”,“60”});
局部变量与成员变量的区别
- 局部变量:方法里的参数与变量
- 成员变量:类里的
- 四个区别:
- 位置:局部变量在方法里,成员变量在类里
- 生命周期:局部变量随着方法的开始而开始,结束而结束;
成员变量随着对象的开始而开始,随着对象的回收而借宿(进入垃圾回收期) - 局部变量存在栈里 , 而成员变量 存入在堆了
- 员变量都有默认值,局部变量没有默认值
私有化private
- 被私有化的只能被本类访问。
- 私有化的好处
- 隐藏内部细节, 保护数据的安全, 以及防止数据的错误
- 提供两个对外的方法, 一个setXXX() 赋值 getXXX() 取值 快捷键Alt+Insert
- 可私有化的有:属性、方法、类、接口
- 私有化就是一种简单的封装。
this的使用
this.变量:访问的都是成员变量。
this.方法:访问的都是成员方法。
在一个方法里面:如果成员变量与局部变量的名字是一样的, 局部变量的作用域优先于成员变量
封装
- 属性的封装:
- 隐藏内部代码实现的细节
- 可以代码 可重用性
- 提高代码的可维护性,抽取出来的方法就是封装
- 属性的封装
- 私有化属性
- 给相应的get set 方法