201711671207《Java程序设计》第4章学习总结

第4章 类与对象

4.1 编程语言的几个发展阶段

面向机器语言->面向过程语言->面向对象语言

4.2 类

  4.2.1 类声明

   给类命名:①如果类名使用拉丁字母,首字母使用大写字母;②类名最好容易识别、见名知意。

  4.2.2 类体

  类体:①变量的声明:用来存储 属性的值;②方法的定义:方法可以对类中声明的变量进行操作,即给出算法。

  抽象的关键:属性和行为

  类使用类体来描述所抽象出的属性和行为,类声明之后的一对大括号以及它们之间的内容称作类体,大括号之间的内容称作类体的内容。

  4.2.3 成员变量

  (1)成员变量的类型:包括基本类型:整型、浮点型、字符型、逻辑类型;引用类型:数组、对象和接口。

  (2)成员变量的有效范围:成员变量在整个类内都有效。

  (3)编程风格:①一行只声明一个变量;②变量的名字除了符合标识符规定外,名字的首单词的首字母使用小写,如果变量的名字由多个单词组成,从第2个单词开始的其他单词的首字母使用大写(驼峰习惯);③变量名字见名知意。

  4.2.4 方法

  类体=变量的声明+方法的定义

  方法的定义=方法头+方法体

 

方法头 {

方法体的内容

}            

 

  1. 方法头:由方法的类型、名称和名称之后的一对小括号以及其中的参数列表所构成。无参数方法定义的方法头中没有参数列表,即方法名称之后一对小括号中无任何内容。
  2. 方法体:方法声明之后的一对大括号以及它们之间的内容称为方法的方法体。方法体的内容包括局部变量的声明和Java语句,即在方法体内可以对成员变量和方法体中声明的局部变量进行操作。和类成员变量不同的是,局部变量只有方法内有效,而且在与其声明的位置关系。
  3. 区别成员变量和局部变量:如果局部变量的名字与成员变量的名字相同,那么成员变量被隐藏,即该成员变量在这个方法内暂时失效;如果方法中的局部变量的名字与成员变量的名字相同,那么方法就隐藏了成员变量,如果想在该方法中使用被隐藏的成员变量,必须使用关键词this。
  4. 成员变量有默认值,局部变量没有默认值,因此在使用局部变量之前,必须保证局部变量有具体的值。

4.3 构造方法与对象的构造

  4.3.1 构造方法:默认构造方法与自定义构造方法、构造方法没有类型;

  4.3.2 创建对象:对象的声明、为声明的对象分配变量、对象的内存模型;

  4.3.3 使用对象:对象操作自己的变量(体现对象的属性)、对象调用类中的方法(体现对象的行为)、体现封装。

  4.3.4 对象的引用和实体:①避免使用空对象(不能让一个空对象去调用方法产生行为);②一个类声明的两个对象如果具有相同的引用,而这就具有完全相同的变量(实体);

      ③垃圾收集:一个类声明的两个对象如果具有相同的引用,那么二者就具有完全相同的实体,而且Java有所谓的“垃圾收集”机制,这种机制周期地监测某个实体是否已不再被任何对象所拥有(引用),如果发现这样的实体,就释放实体占有的内存。

4.4 类与程序的基本结构

  一个Java程序由若干个类构成。

4.5 参数传值

   方法中最重要的部分之一就是方法的参数,参数属于局部变量,当对象调用方法时,参数被分配内存空间,并要求调用者向参数传递值,即方法被调用时,参数变量必须有具体的值。

  4.5.1 传值机制

     方法中的参数变量的值是调用指定的值得拷贝。

  4.5.2 基本数据类型参数的传值

     对于基本数据类型的参数,向该参数传递的值的级别不可以高于该参数的级别。

  4.5.3 类型参数的传值

    如果具有同样的引用,就会用同样的实体。因此,如果改变参数变量所引用的实体,就会导致原变量的实体发生同样的变化;但是,改变参数中存放的“引用”不会影响向其传值的变量中存放的“引用”。

  4.5.4 可变参数

    可变参数是指在声明方法时不给出参数列表中从某项开始直至最后一项参数的名字和个数,但这些参数的类型必须相同。可变参数使用“…”表示若干参数,这些参数的类型必须相同。

4.6 对象的组合

  4.6.1 组合与服用

    如果一个对象a组合了对象b,那么对象a就可以委托对象b调用其方法,即对象a以组合的方式复用对象 b的方法。

   通过组合对象来复用方法有以下特点:①通过组合对象来服用方法也称“黑盒”复用,因为当前对象智能委托所包含的对象调用其方法,这样一来,当前对象所包含的对象的方法的细节是一无所知的;②当前对象随时可以更换所包含的对象,即对象与所包含的对象属于弱耦合关系。

  4.6.2 类的关联关系和依赖关系的UML图

     关联关系,依赖关系

4.7 实例成员与类成员

  4.7.2实例变量和类变量的区别

    ①不同对象的实例变量互不相同;②所有对象共享类变量;③通过类名直接访问类变量。

  4.7.4 实例方法和类方法的区别

    ①对象调用实例方法;②类名调用方法;③设计类方法的原则。

4.8 方法重载

4.8.1 方法重载的语法规则

 重载:一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同。两个方法的参数不同是指满足之一:参数的个数不同;参数个数相同,但参数列表中对应的某个参数的类型不同。

4.8.2 避免重载出现的歧义

4.9 this关键字

this关键字,表示某个对象。this可以出现在实例方法和构造方法中,但不可以出现在类方法中。

4.10 包

包是Java语言有效地管理类的一个机制,不同Java源文件中可能出现名字相同的类,如果想区分这些类,就需要使用包名。包名的目的是有效地区分名字相同的类,不同的Java源文件中的两个类名字相同时,它们可以通过隶属于不同的包来相互区分。

4.10.1 包语句

package语句作为Java源文件的第一条语句,指明该源文件定义的类所在的包,即为该源文件中声明的类指定包名。package语句的一般格式为:

package 包名;

4.11 import语句

    4.11.1引入类库中的类

   使用import语句可以引入包中的类和接口。在一个Java源程序中可以有多个import语句,它们必须写在package语句。

  4.11.2 引入自定义包中的类

   用户程序可以使用import语句引入非类库中有包名的类。

4.12 访问权限

4.12.1 何谓访问权限

访问限制修饰符有private、protected和public,它们都是Java的关键字,用来修饰成员变量或方法。

4.12.2 私有变量和私有方法

用private修饰的成员变量和方法称为私有变量和私有方法。当用某个类在另一个类中创建对象后,如果不希望该对象直接访问自己的变量,即通过“.”运算符操作自己的成员变量,就应当将该成员变量访问权限为private。

4.12.3 共有变量和共有方法

用public修饰的成员变量和方法被称为共有变量和共有方法。

4.12.4 友好变量和友好方法

不用private、public、protected修饰符修饰的成员变量和方法被称为友好变量和友好方法。

4.12.5 受保护的成员变量和方法

用protected修饰的成员变量和方法被称为受保护的成员变量和受保护的方法。

4.12.6 public类与友好类

①不能用protected和private修饰类;②访问限制修饰符按访问权限从高到底的排列顺序是public、protected、友好的、private。

4.13 基本类型的类封装

    Java的基本数据类型包括boolean、byte、short、char、int、long、float和double。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值