美文网首页给Java初学者的学习笔记
第6章 面向对象基础概念

第6章 面向对象基础概念

作者: yangsg | 来源:发表于2019-03-29 11:32 被阅读320次

    1. 面向对象的基础知识

    1.1 什么是面向对象

    面向对象是一种软件开发方法,主要的开发方法

    • 结构化
    • 可视化
    • 软件重组
    • 面向对象
      其中“结构化”和“面向对象”这两种是比较常见的开发方法
      “结构化”:对应的嵌入式项目,一般与硬件相结合。根据硬件的实际操作,程序给出响应,注重程序的运行逻辑。
      “面向对象”:对应的复杂业务逻辑的大型软件系统,以人类自然归纳总结能力,抽象出具体的角色,注重的是角色之间的交互和关系。

    面向对象着重于将现实世界或想象世界中的事物,通过编程手段映射到计算机世界中,这个被称为“抽象”
    抽象的过程就是面向对象设计和构建的一个过程,以人类归纳总结能力,将同事物进行共性归类。归类的过程相当于将现实世界中某个事物,制作成代码中的“类”,类可以理解为就是自定义的类型。

    1.2 抽象
    1.2.1 排除非共性

    比如:描述鸟类的共性
    (1)翅膀 ?? NG
    (2)飞 NG
    (3)羽毛 OK
    (4)喙 OK
    (5)叫声 OK
    (6)两只脚 OK
    (7)会下蛋 OK
    (8)筑巢 ?? NG
    ...
    抽取某个类的共性,需要注意的第一点,排除“非共性”后
    (1) 羽毛
    (2) 喙
    (3) 叫
    (4) 脚
    (5) 下蛋
    共性分为两类:"名词"和“动词”
    “名词”: 羽毛,喙,脚
    "动词":叫,下蛋
    当我们准备抽象“鸟类”,类中分为"属性"和“行为”

    • 名词对应属性,在程序中属性对应的“属性”(变量)
    • 动词对应行为,在程序中行为对应的“方法”
    1.2.2 排除不相关

    对于一些共性,在某些系统中是不必要的。比如描述学生类,类似视力,体重等属性,吃饭,睡觉等行为是与学生身份相关性较低的,所以会排除掉。而类似学号,姓名等属性,学习和考试等行为是与学生身份相关性很强的,所以予以保留。

    学生类
    姓名
    学号
    视力
    体重
    吃饭
    睡觉
    学习
    考试

    如果考虑的是患者类,类似视力,体重等属性,吃饭,睡觉等行为可能与患者身份相关性较强,会予以保留,而类似学号等属性,考试等行为相关性不大,需要排除。

    患者类
    姓名
    学号
    视力
    体重
    吃饭
    睡觉
    学习
    考试

    在1.2.1中抽象的鸟类的共性,排除一些系统中认为不相关的属性和行为,可能剩下的就是
    (1) 羽毛(颜色)
    (2) 叫
    (3) 下蛋

    1.2.3 抽象和实现的过程
    抽象和实现的过程
    • 声明Person类,描述人类
    public class Person {
        
        String name; //人的名字
        char sex; //人的性别
        int age; //人的年龄
        
        public void eat() {
            System.out.println(name+"正在吃饭");
        }
        
        public void sleep() {
            System.out.println(name+"正在睡觉");
        }
    }
    
    • 声明p1和p2两个对象来描述具体的人类个体
    public class Test {
    
        public static void main(String[] args) {
            //p1和p2被称为“对象”
            Person p1 = new Person();
            p1.name = "高扬";
            p1.sex = '男';
            p1.age = 22;    
            p1.eat();
            
            Person p2 = new Person();
            p2.name = "刘钢";
            p2.sex = '男';
            p2.age = 22;
            p2.sleep();
        }
    }
    

    类和对象的关系:类是对象的模板,对象是类的具象化(实例化)。

    相关文章

      网友评论

        本文标题:第6章 面向对象基础概念

        本文链接:https://www.haomeiwen.com/subject/oomkbqtx.html