Java-面向对象

一.面向对象

概念:分为两个思维方式。面向过程和面向对象

  1. 面向过程:是遇到一件事时,思考“我该怎么做”,然后一步步实现的过程。比如:我让冰箱把大象放进去,冰箱把大象放进去的过程就叫做面向过程。
  2. 面向对象:是遇到一件事时,思考“我该让谁去做”,然后谁就是那个对象了。比如:我让冰箱把大象放进去,冰箱就是对象。

 二.类

2.1 类的概述

类是用来描述一类具有共同属性和行为事物的统称。所以其实类在客观世界 里是不存在的,是抽象的,只是用来描述数据信息的。

2.2 类的组成

  • 属性:就是该事物的状态信息。
  • 行为:就是该事物能够做什么。

例如:

  • 手机类:
  1. 属性:品牌,价格。。。
  2. 行为:打电话,打游戏,发短信

2.3 类的定义

类的定义步骤:

  • 定义类
  • 编写类的成员变量
  • 编写类的成员方法

开始实战(让我们用代码爽一下!)

需求:

定义一个手机类,类名为(Phone),类的属性有:品牌,价格;类的行为: 打电话,发短信 

 三.对象(这里的对象不是你女朋友)

3.1 对象的概述

对象是类的一个实例,具体存在的,看得见摸得着的,并且具备该类事物的 属性和行为。

3.2 类和对象的关系

  • 类是对一类具有共同属性和行为的事物的统称,是抽象的
  • 对象是一类事物的具体实例,看得见,摸的着的,真实存在的实体,是具体的
  • 对象是根据类来创建的
  • 类中有什么属性和行为,对象就有什么属性和行为

对象:

        什么是对象?

        万物皆对象。它包括现实中客观存在的事物,也包括抽象的时间、规则、思维。简单点说,对象具有状态、行为和标识。

类:

        什么是类?

        具有相同特性和行为的对象组成的集合就是类,JAVA实际中的类就是指一个数据类型。

拿一条狗来举例,它的状态有:名字、品种、颜色,行为有:叫、摇尾巴和跑。

对比现实对象和软件对象,它们之间十分相似。

软件对象也有状态和行为。软件对象的状态就是属性,行为通过方法体现。

在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。

 四.成员变量和局部变量

 五.封装

5.1 封装概述

封装,它也是面向对象思想的特征之一。面向对象共有三个特征:封装,继 承,多态。

封装表现:
  • 方法就是一个最基本封装体。
  • 类其实也是一个封装体。
  • 一台电脑,它是由CPU、主板、显卡、内存、硬盘、电源等部件组长, 其实我们将这些部件组装在一起就可以使用电脑了,但是发现这些部件 都散落在外面,很容造成不安全因素,于是,使用机箱壳子,把这些部 件都装在里面,并在机箱壳上留下一些插口等,若不留插口,大家想想 会是什么情况。总结:机箱其实就是隐藏了办卡设备的细节,对外提供 了插口以及开关等访问内部细节的方式。
封装好处:
  • 提高了代码的复用性。
  • 隐藏了实现细节,还要对外提供可以访问的方式。
  • 便于调用者的使用。 这是核心之一,也可以理解为就是封装的概念。
  • 提高了安全性。

5.2 private关键字 

private是一个权限修饰符,代表最小权限。

可以修饰成员变量和成员方法。

被private修饰后的成员变量和成员方法,只在本类中才能访问。

 5.3 Get和Set方法

由于属性使用了private关键字修饰,在其他类中无法直接访问,所以得提供公 共的访问方法,我们把这张方法叫做set和get方法

  • get方法: 提供“get变量名()”方法,用于获取成员变量的值,方法用 public修饰
  • set方法: 提供“set变量名(参数)”方法,用于设置成员变量的值,方法用 public修饰

 

 

 5.4 this关键字

5.4.1 成员变量和局部变量同名问题

当在方法中出现了局部变量和成员变量同名的时候,那么在方法中怎么区别 局部变量成员变量呢?可以在成员变量名前面加上this.来区别成员变量和局 部变量

this含义: this代表当前调用方法的引用,哪个对象调用this所在的方法, this就代表哪一个对象

 

5.4.2 this应用 

 

 六.构造方法

构造方法的定义格式:

构造方法的特点:

  • 构造方法的方法名就是类名
  • 构造方法没有返回值类型,连void都没有
  • 使用new来调用构造方法 

构造方法和set方法的区别:

  • 构造方法用来创建对象,并给对象的属性赋初始值,只能赋值一次
  • set方法用来给对象的属性赋值,可以赋值多次

 

构造方法的注意事项:

  1. 如果一个类没有定义构造方法,系统会自动生成一个 空参构造方法
  2. 如果一个类定义了构造方法,系统就不会再自动生成 空参构造方法
  3. 构造方法可以重载,一个类中可以有多个构造方法 

6.1 标准类制作 

 

七.继承 

现实生生活中的继承

 

程序中的继承

 

6.1.2 继承的好处 

  • 提高代码的复用性(减少代码冗余,相同代码重复利用)。
  • 类与类之间产生了关系,是多态的前提

6.2 继承的格式

通过extends关键字,可以声明一个子类继承另外一个父类.

定义格式如下:

注意:

  • 不要为了继承而继承
  • Java中的类只能单继承,不能多继承(一个类只能有一个父类),但是可以有很多子类。 

6.3继承后私有成员的访问规则 

父类的私有成员不能被直接访问

 

6.4 继承后非私有成员的访问规则 

当通过子类访问非私有成员时,先在子类中找,如果找到就使用子 类的,找不到就继续去父类中找。

 6.5 继承后构造方法的访问规则

构造方法的名字是与类名一致的。所以子类是无法继承父类构造方 法的。

 6.6 方法重写(Override)

方法重写 :

子类中出现与父类一模一样的方法时(返回值类型,方 法名和参数列表都相同),会出现覆盖效果,也称为重写或者复 写。声明不变,重新实现。

 重写的注意事项:

  • 方法重写一定要是父子类关系
  • 方法重写要求返回值类型,方法名,参数列表要 相同
  • 子类重写父类的方法,要求子类重写方法的访问 权限大于或者等于父类方法的权限

 6.7 this和super关键字

  • this:表示当前对象

                this可以访问:本类的成员属性、成员方法、构造方法;

  • super:表示父类对象

                super可以访问:父类的成员属性、成员方法、构造方法;

6.7.2 this关键字的三种用法

  • this访问本类成员变量: this.成员变量

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

 

  • this访问本类构造方法: this()可以在本类的一个构造方法中,调 用另一个构造方法

6.7.3 super关键字的三种用法 

  • super访问父类的成员变量: super.父类成员变量名

 

  • super访问父类的成员方法: super.成员方法名();

 

  • super访问父类的构造方法: super()

  

6.7.4 super的注意事项

  • super访问成员变量和成员方法: 优先去父类中找,如果有就直接 使用,如果没有就去爷爷类中找,如果有,就用,依次类推... 
  • 子类的构造方法默认会调用父类的空参构造方法,如果父类中的没 有空参构造方法,只定义了有参构造方法,会编译报错。

6.8 继承的特点

  • Java中的类只支持单继承,不支持多继承。

  • 一个类只能有一个父类,但可以有多个子类。

  • 可以多层继承。

七.抽象类 

7.1 抽象类的概述和定义

概述: 使用abstract关键字修饰的类就是抽象类

概述: 使用abstract关键字修饰的类就是抽象类

抽象类的定义:

7.2 抽象方法的概述和定义 

概述:没有方法体,使用abstract修饰的方法就是抽象方法

抽象方法的定义:

7.3 抽象类的特点 

  • 抽象类不能被创建对象,就是用来做“父类”,被子类继承的。
  • 抽象类不能被创建对象,但可以有“构造方法”——为成员属性初 始化。
  • 抽象类中可以没有抽象方法,但抽象方法必须定义在抽象类中
  • 子类继承抽象类后,必须重写抽象类中所有的抽象方法,否则子类 必须也是一个抽象类

 


  总结一下,小小Java拿下

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值