Loading... # 面向对象 思维方式的转变:由面向过程转向面向对象 面向过程所强调的是完成这件事的过程与动作,而完成需求时,由于每个人的情况、身体、思维不一样,因此需要量身定做其解决方案 而面向对象需要淡化人/操作者的存在,而是强调被操作对象,其要求是写出通用的代码,不管操作者差异 一般对象都是被操作者,通过被动执行 如果要描述一个对象,一般都是描述对象的属性和方法 对象必须是存在的 # 类 类是模板,能确定对象拥有的属性和方法 而对象是根据类所创建出来的 结构和类非常相似,但是结构不具备面向对象的任何特征(封装,继承,多态都不具备) # 属性 属性用于保护字段,对字段的赋值、取值进行限制 属性可以透过两个方法来保护字段:get和set # 访问修饰符 由于需要让字段变得不可被外界访问,因此需要使用访问修饰符或不赋予`public`级别 `public`:可以在整个方案内使用 `private`:只能被当前类访问 # 静态、实例 * 静态 * * 静态类 * 静态成员 * * 静态字段 * 静态属性 * 静态方法 * 实例 * * 实例类 * 实例成员 * * 实例字段 * 实例属性 * 实例方法 实例类下,可以调用有权限访问的所有静态类成员与类 而静态类和静态成员只能调用静态资源 ## 何时使用静态类,何时使用实例类 * 若想将该类作为工具类,那么建议使用静态类,无需创建对象 * * 工具类:将所有常用的方法封装到一个类当中那么称其为工具类,使用静态能够快速调用静态方法和属性 * 静态类在整个项目中资源共享 * 利用静态类来存储用户token/ID * 注意,静态类只有在程序所有线程结束后**才会**释放资源 # 构造函数 也能称之为构造方法(是一个特殊的方法),在创建对象时便会调用构造函数 * 作用:协助初始化对象,给对象的每个属性进行初始化 * 注意:构造函数没有返回值(void也没)、构造函数的名称必须和类名一致 命名方法 ``` public <classname>(必须的参数){ ... } ``` * 在未定义构造函数时将会自动添加无参数的构造函数 # 关键字new new的作用: * 在内存中开辟空间 * 在开辟的空间中创建对象 * 使用对象的构造函数初始化对象 * 隐藏父类成员的方法(在子类拥有与父类重名的方法时),使其不被调用 # 关键字this this的作用: * 代表当前类的对象 * 在类中显示调用本类的构造函数(避免重复代码) ``` public Student(string 1,int 2,int 3,int 4){ this.1 = 1; this.2 = 2; this.3 = 3; this.4 = 4; } public Student(string 1,int 2,int3):this(1,2,3,any){ //不存在的参数就随意赋值即可(切忌属性保护) } ``` # 析构函数 ``` ~classname(){ } ``` 在**程序结束后**析构函数才会执行(~*指在该类对象停用并且抛弃后即是该子进程结束,此时调用析构函数*~) 作用: * 释放资源 * 调用GC(Garbage Collection)回收器 最后修改:2022 年 02 月 06 日 © 禁止转载 赞 0 如果觉得我的文章对你有用,请随意赞赏