面向对象和面向过程的思想对比
- 面向过程编程:Procedure Oriented Programming是一种以过程为中心的编程思想,实现功能的每一步,都是自己实现的
- 面向对象编程:Object Oriented Programming是一种以对象为中心的编程思想,通过指挥对象实现具体的功能
对象
- 对象指客观存在的事物,万物皆对象
类
- 类是对现实生活中一类具有共同属性和行为的事物的抽象
- 属性:该事物的各种特征,例如学生事物的属性:姓名,年龄等
- 行为:该事物存在的功能,例如学生事物的行为:学习,吃饭等
类和对象的关系
- 类:类是对现实生活中一类具有共同属性和行为的事物的抽象
- 对象:是能够看得到摸得着的真实存在实体
类是对象的描述,对象是类的实体
成员变量和局部变量的区别
成员变量 | 局部变量 | 区别 |
---|---|---|
类中方法外 | 方法内或者方法声明上(形参) | 类中的位置不同 |
堆内存 | 栈内存 | 内存中位置不同 |
随着对象的存在而存在,随着对象的消失而消失 | 随着方法的调用而存在,随着方法的调用完毕而消失 | 生命周期不同 |
有默认的初始值 | 没有默认的初始值,必须先定义,赋值后才能使用 | 初始化值不同 |
封装
-
面向对象的三大特征之一(封装,继承,多态)
-
隐藏实现细节,仅对外暴露公共的访问方式
-
封装常见的体现
1.私有成员变量,提供getXxx和setXxx方法
2.将代码抽取到方法中,这是对代码的一种封装
3.将属性抽取到类当中,这是对数据的一种封装 -
封装的好处
1.提高代码的安全性
2.提高代码的复用性
this关键字
局部变量和成员变量如果重名,java使用的是就近原则
- this关键字的作用:可以调用本类的成员(变量,方法),解决局部变量和成员变量的重名问题
构造方法
构建,创建对象的时候,所调用的方法
- 格式
1.方法名和类名相同,大小写也要一致
2.没有返回值类型,连void也没有
3.没有具体的放回在(不能由return带回结果数据) - 执行时机
1.创建对象的时候调用,每一次创建对象就会执行一次构造方法
2.不能手动调用构造方法 - 作用:用于给对象的数据(属性)进行初始化
- 构造方法的注意事项
- 构造方法的创建
1.如果没有定义构造方法,系统将给出一个默认的无参数构造方法
2.如果定义了构造方法,系统不再提供默认的构造方法 - 构造方法的重载
1.如果自动逸带参构造方法,还需要使用无参构造方法,就必须再写一个无参构造方法
推荐: 无论是否使用,都手动书写无参构造方法和带参构造方法
- 构造方法的创建
代码
定义一个学生类,属性,行为
package cn.cdw.demo.student;
/**
* @author DW-CHEN
* 定义一个学生类,属性,行为
*/
public class Student1 {
public String name;
public int age;
public void play() {//玩游戏行为
System.out.println(name + "玩游戏");
}
public void eat() {//吃饭行为
System.out.println("吃饭");
}
public static void main(String[] args) {
Student1 student1 = new Student1();//创建对象
student1.age=12;
student1.name = "小明";
student1.play();
student1.eat();
}
}
封装,对象属性进行私有化。通过暴露接口来给对外访问
标准类制作
1.使用private修饰成员变量
2.手动书写无参和带参的构造方法
3.提供每个成员变量对应的getXxx()和setXxx()方法