第六章 总结

6.1 面向对象概述

6.1.1 对象

对象:是事物存在的实体,eg:人类, 书桌,计算机, 高楼大厦。

对象分为两个部分被称为两个属性:

静态部分:不能动的部分

动态部分:能动的部分

图如下: 

1a560333989145fd93559127d6ec898c.png

 1f0202bba3ba43249b92a56d9ea6844a.png

 6.1.2 类

      累就是同一类事物的统称,如果将现实世界中的一事物抽象成对象,类就是这类对象的统称。eg: 鸟类,家禽类,人类。类是构造对象时所依赖的规范,如一只鸟具有一对翅膀,它可以用这对翅膀飞行,而基本上所有的鸟都具有翅膀这个特性和飞行的技能,这样具有相同特性和行为的一类事物就称为类,类的思想就是这样产生的。

 

     类是封装对象的属性和行为的载体。 如图:

96210ca3cc3542ec82bd47ed84bae0de.png

 定义完鸟类之后,可以根据这个类抽象出一个实体对象,最后通过这个实体对象来解决相关实际问题。

6.1.3 面向对象程序设计的特点

面向对象程序设计有以下几个特点:

   封装性   

   继承性  

   多态性   

1、封装:封装思想保证了类内部数据结构的完整性,应用该类的用户不能轻易地直接操作此数据结构,只能执行类允许公开的数据,避免了外部操作对内部数据的影响,提高了程序的可维护性。

21a6283ddc584c5d88d3c4fa90f537fc.png

 

2、继承:类与类之间同样具有关系;eg: 一个百货公司类与销售员类相关系;

关联主要描述两个类之间的一般二元关系; eg:一个百货公司与销售员类就是一个关联,学生类与教师类也是一个关联。 两个类之间的关系有很多种,继承是关联中的一种。

5d631e34edbf460b8a6b877a5156327f.png

  3、多态:每个图形都拥有绘制自己的能力,这个能力可看作是该类具有的行为,如果将子类的对象统一看作是父亲的实例对象,这样绘制图形时,简单地调用父类也就是图形类绘制图形的方法即可绘制任何图形,这就是多态最基本的思想。

148f334ea5484ca89d60b53c8fd411be.png

 6.2 类与对象

在6.1.2节中已经讲过类是封装对象的属性和行为的载体,Java中定义类使用class关键字,其语法如下:

class 类名称{

       // 类的成员变量

      // 类的成员方法

}

在Java语言中对象的属性以成员变量的形式存在,对象的方法以成员方法的形式存在。本节细讲。 

6.2.1 成员变量

在java中对象的属性也称为成员变量,成员变量的定义与普通变量的定义一样,语法如下:

数据类型 变量名称 [ = 值];

 其中[ = 值]表示可选内容,即定义变量时可以为其赋值,也可以不为其赋值。

为了解成员变量,首先定义一个鸟类,成员变量对应于类对象的属性。

pubilc class Bird {

    String wing; //翅膀

    String claw; //爪子

    String beak; //啄

    String feather; //羽毛

}

6.2.2 成员方法

在Java语言中,成员方法对应于类对象行为,它主要用来定义类可执行的操作,它是包含一系列语言的代码块。

1、成员方法的定义

[权限修饰符 ] [ 返回值类型] 方法名 ( [ 参数类型 参数名 ] ) [ throws 异常类型 ] {

...//方法体

return 返回值 ;

}

参数可以是对象也可以是基本数据类型的变量。

定义一个showGoods方法,用来输出库存商品信息,代码如下:

3301c41c0abc4cbaafc2a1831fc067c4.png

  如果定义的方法有返回值,则必须使用return关键字返回一个指定类型的数据,并且返回值类型要与返回的值类型一致。

2、成员方法的参数

调用方法时可以给该方法传递一个或多个值,传给的方法的值叫做实参,在方法内部,接收实参的变量叫做形参,形参的声明语法于变量的声明语法一样。形参只在内部有效。

参数主要有3种,分别为值参数、引用参数和不定长参数。

(1)值参数

值参数表面实参与形参之间的按值传递。

1b3e298249c74cf88c58ed320005536f.png

 (2)引用参数

如果在给方法传递参数时,参数的类型是数组或者其他引用类型那么在方法中参数的修改会反应到原有的数组或者其他引用类型上,这种类型

45658b352f9a4058bf9cfdb8140b0daf.png

8206e7105b534a7d87492f4e63d92171.png 

 (3)不定长参数

声明方法时,如果有若干个相同类型的参数,可以定义为不定义参数,该类型的参数声明如下:

权限修饰符 返回值类型 方法名(参数类型... 参数名)

6.2.3 构造方法

构造方法的特点如下:

(1)构造方法没有返回类型,也不能定义为void。

(2)构造方法的名称要与本类的名称相同。

(3)构造方法的主要作用是完成对象的初始化工作,它能把定义对象的参数传给对象成员。

构造方法的定义语法如下:

b097fa7d5ecb41fd9a04d4d0c132013b.png

 6.2.4 局部变量

如果在成员方法内定义一个变量,那么这个变量被称为局部变量。

局部变量在方法被执行时创建,在方法执行结束时被销毁。局部变量在使用时必须进行赋值操作或者被初始化,否则会出现编译错误。

6.2.5 局部变量的有效范围

可以将局部变量的有效范围称为变量的作用域,局部变量的有效范围从该变量的声明开始到该变量的结束为止。

在互不嵌套的作用域中可以同时声明两个名称和类型相同的局部变量。

6.2.6 对象的创建

对象可以认为是在一类事物中抽象出某一个特例,可以1通过这个特例来处理这类事物出现的问题,在Java语言中通过new操作符来创建对象。

Test test=new Test();

Test test=new Test("a"); 

 引用只是存放一个对象的内存地址,并非存放一个对象,严格的说引用和对象是不同的,但是可以将这种区别忽略。每个对象都是对象都是相互独立的,在内存中占据独立的内存地址。

6.2.7 访问对象的属性和行为

用户使用new操作符创建一个对象后,可以使用“对象.类成员”来获取对象的属性和行为。

6.2.8 对象的销毁
每个对象都有生命周期,当对象的生命周期结束时,分配给该对象的内存地址会被回收。
(1)对象引用超过其范围,这个对象将被视为垃圾。
(2)对象赋值为null值时将消亡。

输出的值不是成员变量的值会导致方法无法直接使用该成员变量。

this可以调用成员变量和成员方法但Java语言中最常规的调用方式是使用“对象.成员变量”或“对象.成员方法”进行调用。

例:在项目中创建一个类文件,在该类中定义Book类型的方法。通过this关键字进行返回

public class Book {

public Book getBook() {

return this; //返回Book类引用

}}  

6.3 static 关键字

static修饰的变量、常量和方法被称为静态变量、静态常量和静态方法,也被称为类的静态成员。静态成员是属于类所有的,区别于个别对象。

6.3.1 静态变量

Java程序中,把共享的变量用static修饰,该变量就是静态变量。

语法如下:

类名.静态类成员

注意:给静态常量命名时所有字母都应该大写。

6.3.3 静态方法

如果想要使用类中的成员方法,需要先将这个类进行实例化,但有些时候不想或者无法创建类的对象时,还要调用类中的方法才能够完成业务逻辑,此时就可以使用静态方法。

6.3.4 静态代码块

在类中除成员方法之外,用static修饰代码区域可以称之为静态代码块。

注解:

(1)静态代码块由始至终只运行了一次。

(2)非静态代码块,每次创建对象的时候会在构造方法之前运行。所以读取成员变量name时,只能获取到String类型的默认值null。

(3)构造方法只有在使用new创建对象的时候才会运行。

(4)成员方法只有在使用对象调用的时候才会运行。

6.4 类的主方法

主方法是类的入口点,它定义了程序从何处开始;主方法提供对程序流向的控制。主方法的语法如下:

public static void main(String [ ] args ) {

       //方法体

}

在主方法的定义中可以看到主方法具有以下特性:

(1)主方法是静态的,所以如要直接在主方法中调用其他方法,则该方法必须也是静态的.

(2)主方法没有返回值.

(3)主方法的形参为数组.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值