• 面向对象-类与对象



    什么是面向对象

        我们知道Java是面向对象的语言,经常听别人说”万物皆对象“,那么到底什么是面向对象呢?其实早在70年代IBM就提及了这个思想,且在Smaltalk语言中进行了应用。后来根据面向对象的设计思路,才形成了C++,而由C++则产生了Java。但是在面向对象设计之前,广泛采用的是面向过程,面向过程只是针对于自己来解决问题。面向过程的操作是以程序的基本功能实现为主,实现之后就完成了,也不考虑修改的可能性,面向对象,更多的是要进行子模块化的设计,每一个模块都需要单独存在,并且可以被重复利用,所以,面向对象的开发更像是一个具备标准的开发模式。

    面向过程:一步一步执行,一次一次操作,每个步骤都是静态顺序执行的。就比做开车:第一步,先开车门;第二步,上车;第三步,系安全带;第四步,打火;第五步,汽车发动开始行驶;第六步,直行/左拐/右拐;第七步,到达目的地。每一个步骤又分许多小步骤,比如开车门需要多大力气,上车需要迈几步等等。

    面向对象:以对象为核心,把任何事物比作是一个对象,形成模块化的结构来实现程序的最终目的。就拿开车来举例:把人看作是一个对象,把车看作另一个对象。人要去开车,怎么开呢?不去管,我现在只需要告诉车这个对象:“这个人要开着你去往哪里哪里”,至于你要怎么开,我不关心。这就是面向对象的主要思想。


    本质:

        以面向对象的方式用类来组织代码,用对象封装数据。可以这样理解,面向过程强调过程,而面向对象强调结果。


    类与对象的关系

        在现实社会中,是先有的对象,再有的类。比如说:先有的人这个对象,人呢又有好多,按肤色可分为:黄种人、白种人、黑种人;按国家又可分为上百种。因为这么多的对象确立了之后,才有了“人类”这个类。但是在Java中是完全与这个概念相反的,Java中是先有类,再有的对象。比如现在有一个人类(People class),在这个class中你才能声明这个类的共有属性,构写方法。根据这个类你才能创造出对象。并且,在Java中无论在写什么程序时,第一步肯定是要先创建一个类。在Java中,先有具体的对象,然后抽象各个对象之间象的部分,归纳出类,通过类再认识其他对象。

    对象的概念:指具体的事物,把一些属性和方法放在一起,作为一个相互依存的整体,把这个整体叫做对象。属性是对象的特征,方法是对象的行为。
    类的概念:把针对对象的抽象(抽象:抽出象的部分)叫做类。

        类和对象是面向对象编程思想中的核心与基础。类是作为对象的抽象而存在的,所有的对象都依据相应的类来产生,在面向对象的术语中,这个产生对象的过程称为“实例化”。类是用来描述一组具有相同特征对象的。类可以看成一类对象的模板,对象可以看成该类的一个具体的一个具体实例。类是用于描述同一类型的对象的一个抽象的概念,类中定义了这一类对象所应有的静态和动态属性。


    面向对象三大特征:

        ①封装(encapsulation)
        ②继承(extends)
        ③多态(polymorphism)


    示例

    package com.cnblogs.lxj.objectoriented;
    
    /**
     * @packageName: com.cnblogs.lxj.objectoriented
     * @className: People
     * @description: 测试类与对象
     * @author: liuxiaojiang
     * @date: 2021/1/25
     */
    public class People {
    
        private String name;    //姓名
        private String gender;  //性别
        private int age;        //年龄
        private String telephone;   //电话
    
        /**
         * @description: 学生方法
         * @author: liuxiaojiang
         * @date: 2021/1/25
         * @param name:
         * @param gender:
         * @param age:
         * @param telephone:
         * @return: java.lang.String
         **/
        public String student(String name,String gender,int age,String telephone){
           String str = "一名叫"+name+"的"+gender+"子年龄为"+age+",电话是:"+telephone;
           return str;
        }
    
        /**
         * @description: 主方法
         * @author: liuxiaojiang
         * @date: 2021/1/25
         * @param args:
         * @return: void
         **/
        public static void main(String[] args) {
            People people = new People();   //创建一个人类对象
            System.out.println(people.student("张三","男",22,"18888888888"));  //调用学生方法,生成一个叫张三的学生
        }
    
    }
    

    运行结果:

    一名叫张三的男子年龄为22,电话是:18888888888
    

  • 相关阅读:
    a标签去除默认样式
    js获取浏览器的get传值
    apache启动的时候报错非法协议
    获取iframe引入页面内的元素
    百度地图,画多边形后获取中心点
    echarts重写提示框信息,使提示框内的数字每3位以逗号分割
    echarts图例和图例文字位置的设置
    websocket socketJs
    winds添加静态路由
    pscp命令详解
  • 原文地址:https://www.cnblogs.com/joyfulcode/p/14309376.html
Copyright © 2020-2023  润新知