面向对象与面向过程的区别:
1.都是一种思想,一种思考问题的角度
2.面向过程主要是关注过程,,按照分析出来的步骤一步一步走
而面向对象则是,只对结果感兴趣,,谁去执行无所谓
面向对象是依托于面向过程的
//例子
把大象装进冰箱
1.打开冰箱门
2.大象装进去
3.冰箱门关上
事物:
1.冰箱
2.大象
javabean类:
1.冰箱类
1)属性: 品牌 大小 价格 颜色
2)功能: 开门 关门 存储大象
2.大象类
1)属性: 品种 姓名
这里面向对象 只用关注是否完成即可,谁,怎么完成的他并不关心
参考代码:
public class Class002_FridgeTest {
public static void main(String[] args) {
//1.大象
//面向对象
Elephant ele = new Elephant();
ele.name = "云云";
ele.type = "亚洲象";
//2.冰箱
Fridge fridge = new Fridge();
fridge.brand = "海尔兄弟";
fridge.color = "白色";
fridge.price = 10000;
//3.步骤
fridge.open();
fridge.saveElephant(ele);
fridge.close();
}
}
//大象类
class Elephant{
//品种 姓名
public String type;
public String name;
}
//冰箱类
class Fridge{
//1)属性: 品牌 大小 价格 颜色
public String brand;
public double price;
public String color;
//2)功能: 开门 关门 存储大象
public void open(){
System.out.println("打开冰箱门");
}
//面向过程
public void close(){
System.out.println("冰箱门关上");
}
//存储大象
public void saveElephant(Elephant elephant){
System.out.println("把一个"+elephant.name+"的大象装进冰箱");
}
}
如何使用面向对象的思维进行编程:
类:定义一系列对象的共性|模板
对象:用来描述现实生活中真实存在的事物
三大特性:继承,封装,多态
自定义模板:
public class 类名{
//成员变量:修饰符 数据类型 变量名=赋值;
//成员方法:修饰符 返回值类型|void 方法名(参数列表){
方法体
}
return 返回值;
}
/*
看上面划下划线的地方,有解释
*/
成员变量不被static关键字修饰的方法,也就是实例变量;被static修饰的变量为静态变量,也就是类变量
成员方法: 不被static关键字修饰的方法,也就是实例方法; 被static修饰的变量为静态变量,也就是类方法
面向对象2:
运行的步骤:
1.先导包--import
其中不需要导包的有lang 还有在这个包里的类
2.创建对象的引用|变量--创建对象 new具有创建对象的能力、
数据类型 变量名 =new 数据类型();
使用:引用成员变量 引用成员方法
注意:成员变量要跟随对象使用
1.把class加载到方法区中
2.JVM调用测试类的main方法,主方法压栈执行
3.逐行执行main方法中的代码
4.Car car1=new Car(); 创建一个小汽车类型的对象,
new关键字做的事情:
1.在堆中为对象开辟内存空间,这个类的成员变量会跟随对象进入到堆内存中,并且附上默认值
2.调用构造器为对象初始化信息
3.将对象的位置返回给创建|引用对象的位置
5.将对象的地址赋值给前面引用的car1:car1储存的是对象的地址值,car1指向这个对象,car1引用了--这个对象可以跟随car1引用能够使用所指向的对象
6.根据引用使用成员car1,color到car1所指向的对象的内存空间中找到car1的属性为他赋值上"粉色";
7.调用成员方法,调用car1引用所执行的成员方法run()。执行方法中的代码
8.在栈中开辟栈帧,逐行执行run中的代码
9.在run方法中使用成员变量的值,指代的是调用前run方法的对象内存中的成员
10.run执行完毕,压栈释放内存
11.继续执行main中的代码