Java基础 面向对象

Java面向对象
- 面向对象是基于面向过程的一种思想, 它的特点在于让对象具备解决问题的功能, 我们使用对象调用方法就可以解决问题, 把复杂的问题简单化.

面向对象的三大特征
- 封装, 继承, 多态
- 封装: 把功能实现细节隐藏在对象内部, 不让其他程序直接访问对象成员, 同时对外提供公共访问接口, 这样可以提高代码的安全性和复用性
- 继承: 关键字extends, 让类与类产生子父类关系, 子类可以从父类直接使用非私有的成员变量和成员方法, 继承也是多态的前提, 提高了代码的复用性和维护性
- 多态: 事物在不同时刻的不同表现形式,
- 前提: 继承, 重写, 父类引用指向子类对象
- 体现: 父类引用指向子类对象; 父类引用作为参数接收子类对象; 父接口作为参数接收实现类对象
- 好处: 提高代码的维护性和扩展性
- 弊端: 父类引用只能使用父类的方法,不能使用子类特有的方法
- 成员特点: 成员变量编译看父类,运行看父类; 静态方法编译看父类,运行看父类; 一般方法编译看父类, 运行看子类

抽象类和接口
- 抽象类用abstract修饰的类, 和一般类类似, 可以定义常量, 变量, 一般方法, 静态方法, 同时, 也可以定义抽象方法(没有方法体)
- 抽象类中不一定有抽象方法, 但是有抽象方法的类一定是抽象类
- 抽象方法一定要被继承类重写
- 抽象类一般定义继承体系的共性功能
- 接口中中能定义public static final修饰的常量(系统默认), 方法一定要定义抽象方法, 实现类必须重写所有的抽象方法
- 接口中一般定义程序的扩展功能
- 适配器模式: 当一个接口有多个抽象方法时,而我们只使用其中的一个或两个方法时,每次使用的时候我们都要重写这些方法,比较麻烦。我们可以定义一个类去实现这个接口,并重写里面的方法,只是方法体为空,并把这个类定义为抽象类,我们使用的时候继承这个类重写需要的方法就就可以了。

局部变量和成员变量的区别:
(1)定义位置不同:成员变量定义在类中方法外,局部变量定义在方法内。
(2)作用范围不同:成员变量在整个类中有效,局部变量在所在的方法有效。
(3)内存位置不同:成员变量随着对象的创建存放在堆内存中,局部变量存放在栈内存中。
(4)初始化值不同:成员变量是有默认的初始化的值的;局部变量不赋值不能用。
(5)生命周期不同:成员变量随着对象的存在而存在,随着对象的消失而消失;局部变量随着方法的调用而存在,方法调用完毕而消失。

类变量和实例变量的区别?
答:(1)所属不同:类变量属于类,是对象的共性内容;实例变量属于对象,是特性内容。
(2)存储位置不同:类变量随着类的加载存储于方法区;实例变量随着对象的创建存储于堆内存中。
(3)生命周期不同:类变量随着类的加载而存在,随着类的消失而消失;实例变量随着对象的存在而存在,随着对象的消失而消失。
(4)调用方式不同:类变量能够被类名直接调用,有对象的时候也能被对象调用;实例变量只能被对象调用。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值