Java-面向对象

目录

【1】万事万物皆对象

【2】对象与类

【3】面向对象的三个阶段:

1.面向对象分析OOA——Object Oriented Analysis

2.面向对象设计OOD--object oriented design

3.面向对象编程OOP--object oriented program


【1】万事万物皆对象

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

面向过程:当事件比较简单的时候,利用面向过程,注重的是事件的具体的步骤/过程,注重的是过程中的具体的行为,以函数为最小单位,考虑怎么做。(以把大象装进冰箱为例:过程是,打开冰箱,大象迈腿进入冰箱,然后关闭冰箱)

面向对象:注重找“参与者”,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做;(以把大象装进冰箱为例:对象分别是大象和冰箱,大象的方法有:进入冰箱迈前腿,迈右腿进入冰箱。冰箱的方法有:打开冰箱,亮灯,关闭冰箱)

面向过程--->面向对象,其实就是由执行者--->指挥者的一个过渡

二者相辅相成,并不是对立的。解决复杂问题,通过面向对象方式便于我们从宏观上把握事物之间复杂的关系,方便我们分析整个系统;具体到微观操作,任然使用面向过程方式来处理

面向过程:编年体——《资治通鉴》

面向对象:纪传体——《史书》

【2】对象与类

对象:具体的事物,具体的实体

类:对对象向上抽取像的部分,形成类,类是抽象的,是一个模板

一般在写代码的时候先写类,然后再根据类创建对应的对象

【3】面向对象的三个阶段:

1.面向对象分析OOA——Object Oriented Analysis

如对象张三、李四、王五、你、我、他、可以抽取出一个类——人类

类中有什么呢?

动词——》动态特征——》方法

名词——》静态特征——》属性

2.面向对象设计OOD--object oriented design

先有类,再有对象:

类:人类对应为Person

对象:zahgnsan,lisi,wangwu

3.面向对象编程OOP--object oriented program

创建类与创建对象

创建类:

import javax.lang.model.element.NestingKind;

/**
 * @Author: Rick
 * @Description:
 * @Date: Crated in 22:29 2022/6/21
 * @Modified By:
 */
public class Person {
    //名词————》属性
    int age;
    String name;
    double height;
    double weight;

    //动词————》方法
    public void eat(){
        System.out.println("我喜欢吃饭");
    }
    public void sleep(String address){
        System.out.println("我在"+address+"睡觉");
    }
    public String introduce(){
        return "我的名字是:"+name+",我的年龄是:"+age+",我的身高是:"+height+",我的体重是"+weight;
    }
}

创建对象

/**
 * @Author: Rick
 * @Description:
 * @Date: Crated in 22:42 2022/6/21
 * @Modified By:
 */
public class Test {//测试类

    public static void main(String[] args) {
        //创建一个人类的具体的对象/实例:
        //创建一个对象,对象的名字叫:zs
        //Person 属于引用数据类型
        //第一次加载类的时候,会进行类的加载,初始化创建对象的时候,对象的属性没有给赋值,有默认的初始化的值
        Person zs = new Person();
        zs.name="张三";
        zs.age=18;
        zs.height=180.5;
        zs.weight=65;

        //再创建一个对象
        //再次创建类的时候,就不会进行类的加载了,类的加载只在第一次需要的时候加载一次
        Person ls = new Person();
        ls.name="李四";
        ls.age=20;
        ls.weight=70;
        ls.height=190.8;

        //对属性值进行读取
        System.out.println(zs.name);
        System.out.println(ls.age);

        //对方法进行操作
        //不同的对象,属性有自己的特有的值,但是方法都是调用类中通用的方法
        //属性:各个对象的属性是独立的
        //方法:各个对象的方法是共享的
        zs.eat();
        ls.eat();
        zs.sleep("教室");
        String str= zs.introduce();
        System.out.println(str);

    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值