(六)java面向对象

(六)java面向对象


1. 万事万物皆对象,事物抽象成对象。Object-Oriented Programming
面向对象编程思想实际上就是一种运用对象、类、 继承、封装、聚合、关联、消息、多态性等概念来 构造系统的软件开发方法

1.1 实例化对象的创建
内存的分配,栈内存中保存基本数据类型的局部变量和对象的引用值。
堆内存的分配,只能使用new来分配内存空间,通常保存一些数据需求大的变量。
在我们实例化对象时,会同时分配栈和堆内存,在栈内保存对象的首地址,即 引用;在堆内存中保存了对象的属性,但是对象名都是存在栈内存中的。

2. 类的继承extends
①java中只支持单重继承,没有多重继承。但一个父类可以有多个子类。
②实例化,先实例化父类,再子类。先调用父类构造方法,在调用子类构造。
继承中,子类只能继承 父类中被public protected 修饰的属性或者方法。子类继承父类时,super关键词一定得要在第一行!

2.1 为什么要用继承?
①使编码更为高效
②易于维护
③代码重用

3. 封装概念
使用访问权限修饰符对类的成员进行控制,被成为封装。
隐藏属性、方法或实现细节的过程称为封装

3.1 为什么要用封装?
①隐藏类的实现细节
②方便控制用户的不合理操作
③便于修改,增强代码的可维护性

4. 修饰符问题
构造器和类的权限通常为public;private权限最小,限制类外访问,一 般把属性设为private,让其他类不能直接访问属性,达到保护属性的目的;friendly是默认权限,即不使用权限修饰符时,即为friendly,该权限声明的成员在类内以及在同一个包中的其他类可以访问;而 protected所修饰的成员在类内、同一个包中、所在类的子类中都可以 访问。
即public > protected > friendly > private

private只能在本类中使用。
defalut只能在本类或者同一包下的类中使用。
protect不同包的子类也能使用。
public 都可以用。

5. 方法的覆盖和重载区别
方法覆盖的规则:(相同的方法名,返回类型,参数列表)完全相同。
方法的覆盖只在子类继承父类的时候才会有。
覆盖的目的:需要重写父类的方法.

方法重载的规则:只要函数名称相同即可。(参数列表不同)
方法重载可以存在在每一个类中。
返回类型的不同 不是 判断函数重载的条件。
eg. public int add(int a ,int b ){}
public void add(int a, int b){}这2个是函数的重载吗???
错误,直接报错Duplicate method add(int) in type test01。

6. super关键词的用法!
①调用父类的构造方法,且必须放在第一行。super()中的参数决定了调用父类的那个构造方法。
this()调用本类的构造方法,必须放在第一行。与super()二者只能纯在一个。
②super可用于访问父类被子类隐藏或着覆盖的方法和属性,使用形式为super.方法(属性)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值