使用Java实现面向对象编程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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修饰的属性和方法,不管子类和父类是否在同一个包里。