使用Java实现面向对象编程

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

使用Java实现面向对象编程

第一章抽象和封装

1.1 用面向对象设计电子宠物

面向对象设计的过程就是抽象的过程:

第一步:发现类。

第二步:发现类的属性。

第三步:发现类的方法。

软件出现的目的是为了:

用计算机的言语描述现实世界。

用计算机解决现实世界的问题。

抽象是遵循的原则:

属性、方法的设置是为了解决业务的问题。

关注主要属性、方法

如没有必要、勿增加额外的类、属性与方法。

类的基本结构:

其主要由属性和行为组成,成为类的成员变量(或者成员属性)和成员方法,统称为类的成员(除此之外,类的成员还包括构造方法、代码块等)。

类与对象:

通过构造方法来创建对象,例如”Penguin p = new Penguin(;”。

通过对象名.属性名的方式调用属性,例如”=”pp”;”。

通过对象名.方法名的方式调用属性,例如”p.print(;”。

类(Class和对象(Object是面向对象中的两个核心概念。类是对某一类事物的描述,是抽象的、概念上的定义。对象是实际存在的该事物的个体、是具体的、现实的。

类的规范:

类名、属性名、方法名以及常量名的命名规范如下:

类名由一个或几个单词组成,每个单词的第一个字母大写。

属性名和方法名由一个或几个单词组成,第一个单词首字母小写,其他单词首字母大写。

常量名由一个或几个单词组成,所有字母大写。

Static可以用来修饰属性、方法和代码块。Static修饰的变量属于这个类所有,即由这个类创建的所有对象共用同一个static变量。通常把static修饰的属性和方法称为类属性(类变量)、类方法。不使用static修饰的属性和方法,属于单个对象,通常称为实例属性(实例变量、实例方法。

类属性、类方法可以通过类名和对象名访问,实例属性、实例方法只能通过对象名访问。Final可以用来修饰属性、方法和类。用final修饰的变量成为常量,其值固定不变。

1.2 构造方法及其重载

构造方法

构造方法(Constructor是一个特殊方法,它用于创建类的对象,因此一类必须包含至少一个构造方法,否则就无法创建对象。

构造方法的名字和类名相同,没有返回值类型。构造方法的作用主要就是在创建对象时执行一些初始化操作。

在没有给类提供任何构造方法时,系统会提供一个无参的方法体为空的默认构造方法。一旦提供了自定义构造方法,系统将不会在提供这个默认构造方法。如果要使用它就必须手动添加。

方法重载

如果同一个类中包含了两个或两个以上方法,它们的方法名相同,方法参数个数或参数类型不同,则称该方法被重载了,这个过程称为方法重载。成员方法和构造方法都可以进行重载。

方法重载的判断依据如下:

1. 必须是在同一个类里。

2. 方法名相同。

3. 方法参数个数或参数类型不同。

4. 与方法返回值和方法修饰符没有任何关系。

封装

封装(Encapsulation是类的三大特性之一,就是将类的状

态信息隐藏在类内部,不允许外部程序直接访问,而是

通过该类提供的方法来实现对隐藏信息的操作和访问。

封装的具体步骤:

1. 修改属性的可见性来限制对属性的访问。

2. 为每个属性创建一对赋值(setter方法和取值(getter方法,用于对这些属性的存取。

3. 在赋值方法中,加入对属性的存取控制语句。

封装的好处:

1. 隐藏类的实现细节 .

2. 让使用者只能通过程序员规定的方法来访问数据。

3. 可以方便地加入存取控制语句,限制不合理操作。

访问修饰符:

Private:成员变量和方法只能在类内被访问,具有类可见性。

默认:成员变量和方法只能被同一个包里的类访问,具有包可见性。

Protected:可以被同一个包中类访问,被同一个项目中不同包中的子类访问。

Public:可以被同一个项目中所有类访问,具有项目可见性,这是最大的访问权限。

This关键字

1. 使用this调用成员变量,解决成员变量和局部变量同名冲

突。

Public void setName(String name{

= name;//成员变量和局部变量同名必

须使用this

}

Public void setName(String xm{

Name = xm ; //成员变量和局部变量不同名,this可以省略

}

2. 使用this调用成员方法

Public void play(int n{

Health = health – n;

This.print(;//this可以省略,直接调用print(;

}

3. 使用this调用重载的构造方法,只能在构造方法中

使用,必须是构造方法的第一条语句。

Public Penguin(String name,String sex{

= name;

This.sex = sex;

}

Public Penguin(String name,int health,int love,String sex{

This(name,sex; //调用重载的构造方法

This.health = health;

This.love = love;

}

因为this是在对象内部指代自身的引用,所以this只能调用实例变量、实例方法和构造方法。

This不能调用类变量和类方法。

This也不能调用局部变量。

第二章继承

继承的概念

继承(InHeritance通过extends关键字来实现,其中SubClass称为子类、SuperClass称为父类、基类或超类。修饰符如果是public,该类在整个项目中可见;不写public修饰符则该类只在当前包可见;不可以使用private和protected修饰符。

子类可以从父类中继承的有:

继承public和protected修饰的属性和方法,不管子类和父类是否在同一个包里。

相关文档
最新文档