面向对象

1、类与对象

面向对象的思想是通过面向过程的思想演变而来的,面向对象实际上是对面向过程进行功能分化责任转移而来的。

功能分化是指将工作逻辑分化,可以理解为各做各的事;

责任转移是指将完成工作的责任分化,程序员不关心代码工作过程,只关心结果,具体的工作过程是如何执行的应该由对象自己来负责;

责任转移可类比为:我想吃个煎饼,不需要我自己和面、摊煎饼,我只要和卖煎饼的大妈说:“我要一个煎饼。”,卖煎饼的大妈就会卖给我一个煎饼,我只关心煎饼的结果,做煎饼的过程由大妈负责。

类是对象的抽象,对象是类的实体。

类的成员变量 --> 对象的状态

类的成员函数(方法) --> 对象的行为

2、static静态

2.1、static关键字

被static修饰的方法称为: 静态方法

被static修饰的变量称为:静态变量类变量

没有被static修饰的变量称为: 实例变量

静态变量和静态方法有如下特点:

  1. 静态变量、静态方法会随着类的加载而加载,随着类的消失而消失,static的生命周期最长;
  2. static是优先于对象的存在;
  3. 静态变量、静态方法被所有对象所共享;
  4. 静态变量、静态方法可以直接被类名调用;

2.2、类的静态变量、静态方法

在引用普通成员变量、方法时,必须有明确的对象。意思是要明确是哪个对象调用了某个方法。

  1. 没有 this 引用,静态变量全局只有唯一一份;
  2. 普通函数可以引用静态变量、静态方法;
  3. 对象上引用静态变量、静态方法会产生编辑器警告;
  4. 静态方法不可以引用普通成员变量、方法;

2.3、实例变量和类变量的区别

存放位置:

  • 类变量(静态变量)随着类的加载而存在于方法区中;
  • 实例变量随着对象的加载而存在于堆内存中;

生命周期:

  • 类变量(静态变量)生命周期最长,随着类的销毁而销毁;
  • 实例变量生命周期随着对象的销毁而结束;

2.4、static和final一起用表示什么?

用 static final 来修饰的成员变量和成员方法,可理解为“全局常量”。

  • 对于变量,表示一旦赋值就不可以改变,并且通过类名可以直接访问。
  • 对于方法,表示不可以覆写,并且可以通过类名直接访问。

3、接口与抽象类的区别

在概念上:

接口是对类的规范,用实物举例,如:充电器的USB接口,不同的电器如果要用USB充电器的话就必须有一个USB接口,也就是实现USB接口的规范。

抽象类是对父类的部分实现,父类规定了一些方法或变量的实现。

在功能上:类可以实现多个接口,但只能继承一个父类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值