面向对象回顾(01)

参考资料:黑马程序员

https://www.bilibili.com/video/BV17F411T7Ao?p=81&vd_source=54650e8aac2df129bf190949eed28adf

面向对象与面向过程的区别

共性:

都是一种思想,思维方式,思考问题的角度

不同:

面向过程:如何一步一步的去实现?直面过程

面向对象:我该找谁来实现?面对一个对象,由对象去实现过程,如何去实现由对象去考虑

面向对象的实现依托于面向过程

面向对象的优点

优点:

1)将复杂的问题简单化

2)将程序与现实生活紧密联系

3)面向过程适用于执行者,面向对象适用于管理者

使用面向对象思想编程

类 : 定义一系列对象事物的共性-->图纸|模版|javabean|实体
对象 : 描述显示生活中真实存在的事物 | 实例
根据类创建对象,进一步使用对象

类和对象

类的理解
类是对现实生活中一类具有属性和行为的事物的抽象

类是对象的数据类型,类具有相同属性和行为的一组对象集合

类是对现实事物的一种描述
类的组成

属性:事物的特征(在类中通过成员变量来体现(类中方法外的变量))

行为:指事物能执行的操作(在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可))

类的定义步骤:

①定义类

实体类的定义分析 :
    1.手机都有什么特点|特征-->属性--> 名词            ==>成员变量
                颜色 ,品牌,价格,尺寸...
    2.手机都有什么能力|功能 -------> 动词             ==>成员方法
                打电话,听歌,打游戏....

②编写类的成员变量

③编写类的成员方法

public class 类名 {
	// 成员变量
	变量1的数据类型 变量1;
	变量2的数据类型 变量2;
	…
	// 成员方法
	方法1;
	方法2;	
}

对象的使用

创建对象的格式:

  • 类名 对象名 = new 类名();

调用成员的格式:

  • 对象名.成员变量

  • 对象名.成员方法();

创建对象

格式:类名 对象名 = new 类名();

范例:Phone p = new Phone();

使用对象
    1:使用成员变量
        格式:对象名.变量名
        范例:p.brand
    2:使用成员方法
        格式:对象名.方法名()
        范例:p.call()

练习 :

模拟把大象装进冰箱的实现流程


/*1.分析涉及到了几种事物
        1.对象 :  大象 elephant
        属性 : 姓名  颜色  品种....

        2.冰箱: fridge
        属性 : 价格  品牌  .....
        功能 : 打开冰箱  装进大象  关闭冰箱...
        2.分析具体的实现流程步骤
        1) 打开冰箱  装进大象  关闭冰箱...
        */

public class SaveElephant {
    public static void main(String[] args) {
        Elephant elephant=new Elephant();
        Fridge fridge=new Fridge();
        elephant.breed="美洲象";
        elephant.name="大华";
        elephant.color="白色";
        fridge.brand="海尔";
        fridge.price=20000;
        fridge.open();
        fridge.save(elephant);
        fridge.close();
    }
}
class Elephant{
   public String name;
   public String color;
   public String breed;
}
class Fridge{
    public double price;
    public String brand;
    public void open(){
        System.out.println("打开冰箱");
    }
    public void save(Elephant elephant){
        System.out.println("装进"+elephant.color+"的"+elephant.breed+"的"+elephant.name+"大象");
    }
    public void close(){
        System.out.println("关闭冰箱");
    }

}