• JAVA面向对象思想理解分析


    1.面向对象是面向过程而言.两者都是一种思想。
    面向过程:强调的是功能行为。(强调过程、动作)
    面向对象:将功能封装进对象,强调了具备了功能的对象。(强调对象、事物)
    面向对象是基于面向过程的。将复杂的事情变简单了。
    面向过程-->面向对象:执行者-->指挥者
    将过程、功能封装进对象里面。
    面向对象三大特征:封装、继承、多态。(找对象,建立对象,使用对象,维护对象的关系。)
    老者境界:(万物皆对象!!!)
    例:公司招聘程序员:为了提高效率,公司老板从面向过程到面向对象(执行者-->指挥者)
    例:去饭店吃饭,服务员具备点菜功能是对象,我们是指挥者。
    2.以后写程序就是找对象使用,有对象就拿过来用,没对象就造一个对象。
    人开门:名词提炼法
    人{
    开门(门)
    {
    门.开();
    }
    }
    门{ 
    开(){操作门轴..}
    }
    3.类(class)和对象的关系:类是对现实生活中事物的描述。对象就是这类事物,实实在在存在的个体。
    描述事物就是描述事物的属性和行为。
    属性对应类中的变量,行为对应类中的函数(方法)。
    定义类是描述事物定义属性和行为。【属性】和【行为】共同成为类中的成员(成员变量和成员方法);
    (现实生活中对象:张三、李四。
    想要描述:这些对象共性内容。对具体的抽象。
    描述时:这些对象的共性有:姓名,年龄,性别,学习java时间、功能。)
    映射到java中:描述是class中定义的类。具体对象是对应java在堆内存用new建立的实体。
    4.类类型变量(引用类型)指向对象。(栈内存产生类类型变量指向实体)(堆内存产生实体)
    5.成员变量作用于整个类中class,局部变量作用在函数中。
    成员变量作用堆内存中因为对象的存在才在内存中存在;局部变量作用于栈内存中。
    6.匿名对象:new Car().num=5;匿名对象调用属性没意义。调用方法有意义。(方法在方法去中)
    当对对象的方法只调用一次时,可以使用匿名对象,这样比较简化;
    如果对一个对象进行多成员调用,必须给这个对象起名字。
    可以将匿名对象作为实际参数进行传递。
    例如:show(new car());public static void show(car c){c.num=3;c.color=4;}可以简化书写;
    7.封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问的方式。
    好处:将变化隔离;便于使用;提高重要性;提高安全性。
    封装原则:将不需要对外提供的内容都隐藏起来;
    【把属性都隐藏,提供公共方法对其访问】。
    【函数是代码中最小封装体。】.
    对属性的封装,提供get、set方法访问,赋值
    private只在私有类中访问。封装不是私有,私有仅仅是封装的一种表现形式。之所以对外提供访问方式,因为在访问方式中加入逻辑判断等语句。
    一个类里面有属性set(void)设置和get返回,那么这个属性是私有的。
    8.构造函数:函数名和类名一致;不用定义返回值类型(不用void...);不写return语句。
    对象一建立调用与之对应的构造函数。
    构造函数的作用:可以给对象进行初始化。
    构造函数的细节:当一个类中没有定义构造函数时,那么系统会默认给该类加入一个空参数的构造函数。
    构造函数和一般函数写法上、运行上不同,构造函数是在对象一建立就运行。给对象初始化。
    而一般方法(set get)是对象调用才执行,是给对象添加对象具备的功能。
    一个函数一建立,构造函数只运行一次。而一般方法可以被该函数对象调用多次。
    9.构造代码块,作用:给对象初始化,对象一建立就运行,优先于构造函数执行。构造代码块给所有对象初始化,
    构造函数给对应对象初始化。
    不同的构造函数有相同初始化内容。
    10.局部的变量赋予给成员的用this关键字。(同名)
    this的特点:this代表本类【对象】。this代表所在函数所属对象的引用。
    哪个对象在调用this所在函数,this就代表那个对象。
    this应用:当定义本类中功能,该函数内部调用该函数对象,用this表示这个对象。
    11.构造函数之间的调用用this();用于区分同名变量的情况。
    this语句只能在构造函数第一行。
    12.static关键字。是一个修饰符,用于修饰成员(成员变量,成员函数)(在方法区中)
    不在堆内存中,对象可以共享。
    可以被类名调用。(类名.静态成员)。
    static静态的特点:
    1.随着类的加载而加载。2.被所用对象共享。3.优先于对象存在。4.可以被类名调用。5.静态变量可以使用get、set方法
    特有的数据用成员变量,多个对象共用的数据用静态变量。
    13.实例变量和类变量(static)区别
    1.类变量随着类的加载存在于方法区中。实例变量随着对象建立存在堆内存中。
    2.类变量生命周期长,随着类消失而消失。实例变量随着对象的消失而消失。
    3.主函数是静态的。
    14.静态使用注意事项:
    1.静态方法只能访问静态成员(属性,方法)。非静态方法既可以访问静态也可以访问非静态。
    2.静态方法中不可以定义this.super关键字。(静态优先于对象存在,对象中有this.)

     
  • 相关阅读:
    Systemd 指令
    2018年书单
    2017年书单
    Centos7 Devstack [Rocky] 重启后无法联网
    kvm虚拟机操作相关命令及虚拟机和镜像密码修改
    负载均衡原理-转
    用配置文件里面的参数值替换yaml模板中的变量值【python】
    linux工具之sar
    利用系统缓存优化程序的运行效率
    Elasticsearch单机部署
  • 原文地址:https://www.cnblogs.com/reeber/p/Reeber.html
Copyright © 2020-2023  润新知