面向对象

思维方式的转变:由面向过程转向面向对象

面向过程所强调的是完成这件事的过程与动作,而完成需求时,由于每个人的情况、身体、思维不一样,因此需要量身定做其解决方案

而面向对象需要淡化人/操作者的存在,而是强调被操作对象,其要求是写出通用的代码,不管操作者差异

一般对象都是被操作者,通过被动执行

如果要描述一个对象,一般都是描述对象的属性和方法

对象必须是存在的

类是模板,能确定对象拥有的属性和方法

而对象是根据类所创建出来的

结构和类非常相似,但是结构不具备面向对象的任何特征(封装,继承,多态都不具备)

属性

属性用于保护字段,对字段的赋值、取值进行限制

属性可以透过两个方法来保护字段: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 日
如果觉得我的文章对你有用,请随意赞赏