初学-----面向对象笔记整理

Java中面向对象思想

面向对象本身基于面向过程….

面向过程:需求分析,建立功能代码块,完成功能代码块的业务逻辑,开始调用代码块;

面向对象

面向对象的思想特点:

1)让复杂的事情简单化

2)让我们从执行者变成指挥者(角色发生变化)

3)更符合我们生活中的思想行为习惯…

 

面向对象的设计原则:

在不断地创建对象,使用对象,指挥对象做事情

举例:键盘录入Scanner;

创建文本扫描器对象,使用这个对象录入数据,完成操作;

 

面向对象的特征:

1)封装:将一个事物的书写私有化(对外隐藏),外界不能直接访问(保证数据安全);需要提供对外公共访问来访问成员变量

 

关键字:private:被私有的变量/方法只能在本类中访问;外界不能直接访问;但是可以通过公共方法简介访问;

 

private的关键字特点:

一个标准类的写法:需要在类的成员变量上加入private,提供对外的public的公共访问方法;

 

一个类的组成:

1)成员变量

2)加入构造方法

无参/有参

3)成员方法

 

 

2)继承:

将多个类的共性内容抽取到一个独立的类中,然后独立的类和这些类产生一种“继承”关系;

子类继承父类,继承父类中相关的属性或者行为…

关键字:extends

格式:

class 父类名{ }

class 子类名 extends 父类名{ }

Java提供的“继承” 特征的好处:

1)提高了代码的复用性;

2)提高了代码的维护性;

3)让类与类之间产生关系----是“多态的前提条件”;

 

注意事项:

1)子类继承父类,只能继承父类非私有的成员,私有的成员,外界不能访问,只能间接通过公共方法来访问;

子类中的功能:一般都是一些子类的特有功能;

2)

 

开发中,设计原则:都要遵循“低耦合,高内聚”;

耦合:类与类产生的关系;

低耦合:这种关系越少越好!    只能避免,不能彻底解决; (Spring框架:IOC 控制)

 

内聚:执行某件事情的能力

高内聚:在一个类中能够完成的事情,不要使用多个类来完成;

 

继承的特点:

1)在Java中,类与类之间,只支持单继承,不支持多继承;

2)在Java中,类与类之间,虽然不能多继承,但可以多层继承;

 

继承中:一个类的组成

1)成员变量

2)构造方法

3)成员方法

 

继承的关系问题:

1)子类继承父类,如果子类的成员变量名称和父类的成员变量名称不一致的情况:

比较简单,分别访问即可;

2)子类继承父类,如果子类的成员变量名称和父类的成员变量名称一致的情况:

a)先在本类的局部位置找,有没有这个变量,有就直接使用;

b)如果本类的局部位置没有,在本类的成员位置中找,有就在直接使用;

c)如果本类的的成员位置没有,在它的父类的成员位置找,有就使用;

d)父类的成员位置否没有这个变量,压根不存在,就报错;

 

继承关系中,构造方法的访问

子类继承父类,不能够继承构造方法,但是可以通过super( )间接访问父类的构造方法,

子类的所有构造方法都默认访问父类的无参构造方法:子类的每一个构造方法的第一句话:super( );

super:代表的是父类的空间标识(代表父类的对象的地址值引用)

 

为什么要让父类初始化呢?

因为子类继承父类,可能会使用到父类的数据,所以必须先让父类初始化,然后子类再初始化(分层初始化)

在写父类的时候,在继承中由于存在默认的访问问题,所以父类一定要永远给出无参构造方法;

 

如果父类没有给出无参构造方法导致子类无法访问并报错,解决方案:

1)手动给出父类的无参构造方法;

2)在子类的所有构造方法中,间接通过super(xx),访问父类的有参构造方法;

3)子类的所有构造方法中,只要有一个能够让父类初始化即可;(不推荐)

执行子类无参构造方法,先执行本类的有参构造方法:this(xx)

然后在通过本类的有参构造方法: super(xx):间接访问父类的有参构造,完成父类的初始化;

 

this和super的区别:

this:代表本类对象的地址值引用;

super:代表的父类空间标识(父类对象的地址值引用);

 

this.变量:访问的本类的成员变量;

this.方法名():访问的本类的成员方法;

this&

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值