成员变量与局部变量的区别,面向对象的三大特征,普通类和抽象类的区别

1,成员变量与局部变量的区别

1,成员变量是独立于方法外的变量,局部变量是类的方法中的变量

(1)成员变量:包括实例变量和类变量,用static修饰的是类变量,不用static修饰的是实例变量,所有类的成员变量可以通过this来引用

(2)局部变量:包括形参,方法局部变量,代码块局部变量,存在于方法的参数列表和方法定义中以及代码块中

2,成员变量可以被public,protect,private,static等修饰,而局部变量不能被控制修饰符及static修饰,二者都可以定义成final型

3,局部变量存储在堆,局部变量存储在栈,局部变量的作用域仅局限于定义它的方法,在该方法的外部无法访问它。成员变量的作用域在整个类内部都是可见的,所有成员方法都可以使用它。如果访问权限允许,还可以在类的外部使用成员变量

4,局部变量的生存周期与方法的执行周期相同,当方法执行到定义局部变量的语句时,局部变量被执行,执行到它所在的作用域的最后一条语句时,局部变量被销毁。类的成员变量,如果是实例成员,它和对象的生存期相同,而静态成员变量的生存期是整个程序运行期

5,成员变量在累加或实例被创建时,系统自动分配内存空间,并在分配空间后自动为成员变量指定初始化值,初始化值为默认值,基本类型的默认值为0,复合类型的默认值为null(被final修饰且没有static的必须显示赋值),局部变量在定义后必须经过显式初始化后才能使用,系统不会为局部变量执行初始化

6,局部变量可以和成员变量同名,且在使用时,局部变量具有更高的优先级,直接使用同名访问,访问的是局部变量,如需要访问成员变量可以用this.变量名访问

2,面向对象的三大特征

封装,继承,多态

3,普通类和抽象类的区别

java普通类和抽象类的区别:

  1. 实例化:普通类可以直接实例化,而抽象类不能直接实例化。需要通过子类继承并实现其中的抽象方法才能实例化。

  2. 抽象方法:普通类没有抽象方法,而抽象类必须至少包含一个抽象方法。抽象方法是一种只有声明,没有实现的方法,在抽象类中只能进行声明,具体的实现需要在子类中完成。

  3. 实现:普通类只能被继承,而抽象类既可以被继承也可以被实现。如果一个普通类实现了某个接口,那么它必须实现接口中所有的方法。

  4. 成员变量:普通类可以包含各种类型的成员变量,包括静态变量和实例变量,而抽象类也可以包含这些类型的成员变量,除此之外还可以包含静态常量。

  5. 多态:普通类也支持多态性,但是抽象类更适合用来实现多态性,因为抽象类可以通过向上转型将其子类对象赋给父类引用,从而实现多态性。

  6. 普通类是一种可以直接实例化的类,而抽象类则是一种不能直接实例化的类,需要通过子类继承并实现其中的抽象方法才能实例化。抽象类和普通类之间有许多区别,主要是在抽象方法、实现和多态性方面。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值