JAVA面向对象编程PPT课件
合集下载
JAVA面向对象编程基础.ppt

类
类是面向对象程序设计的基础和核心 类是对象的抽象和归纳,是对象的模板
类的示例
水果类
汽车类
动物类
“类是具有相同属性和方法的一组对象的集合”
6
类和对象的示例
雇员
收银员
7
系统管理员
仓库管理员
促销员
部门经理
属性
属性名称由类的所有实例共享 事物的特征在类中表示为变量 每个对象的每个属性都拥有其特有的值
对象
对象
面向对象程序设计中用来 描述客观事物的程序单位
表示现实世界中的实体
“对象是存在的具体实体,具有明确定义的特征和行为。”
是类的实例
具备某种功能 完成特定任务
4
对象的示例
收银员对象
姓名:布兰尼 年龄:35 职务:收银员
操作: 收款 打印帐单
特征
行为
5
顾客对象
顾客 姓名:朱丽叶 年龄:28
操作: 购买商品
第三章 面向对象编程
理解对象 理解类 理解抽象和封装 理解对象与类之间的关系 掌握包的创建和导入
2
目标
面向对象编程
OOP
旨在在计算机程序中 模拟现实世界中的概念
能够在计算机程序中用类似的 实体模拟现实世界中的实体
3
在 OOP 中,现实世界的 所有事物全都被视为对象2
处理事物复杂性的方法
抽象
只关注事物 的重要细节, 而忽略事物的 次要细节。
数据抽象:“根据具体的应用抽取出类的相关属性和操作。”
13
数据抽象的示例
Student 类
属性
Name StudentNO SeatNumber
方法
getName() getStudentNO() getSeatNumber()
第5章 面向对象思想Java面向对象程序设计课件-PPT课件

this.radius=radius;
} public double area(){//圆面积
return Math.PI*radius*radius;
}
}
圆柱体Cylinder1具有volume方法计算圆柱的体积。 Cylinder1类中,bottom属性是Circle声明的引用变 量,在volume方法中通过bottom.area()*height求 的体积。
依赖关系:如果类A的某个方法的参数或返回值的数据 类型是类B(或接口B),那么A和B的关系是依赖关系 (Dependency),称A依赖于B,使用“虚线-箭头〞表 示,虚线起点是A,箭头指向B。
5.2 开闭原那么
开闭原那么是基石,其他的设计原那么是开闭原那么的 扩展。
开闭原那么就是对扩展开放对修改关闭。在一个软件设 计中增加新的模块时不需要修改原有模块。
Chocolate());
使用组合方式,可以较好地解决继承的缺点,比方在加 巧克力咖啡中再添加一份巧克力时,通过new Coffee(milk,new Chocolate());很容易实现。
5.4 上下原那么
上下原那么是高内聚低耦合原那么的简称。 内聚表示模块内部各个元素间关联程度,
耦合表示不同模块间关联的程度。 简单地说,高内聚低耦合就是模块内部每
private Rectangle bottom; //底面 private double height; //高 public Cylinder2(Rectangle bottom,double height){
this.bottom=bottom; this.height=height; } public double volume(){//体积 return bottom.area()*height; } }
} public double area(){//圆面积
return Math.PI*radius*radius;
}
}
圆柱体Cylinder1具有volume方法计算圆柱的体积。 Cylinder1类中,bottom属性是Circle声明的引用变 量,在volume方法中通过bottom.area()*height求 的体积。
依赖关系:如果类A的某个方法的参数或返回值的数据 类型是类B(或接口B),那么A和B的关系是依赖关系 (Dependency),称A依赖于B,使用“虚线-箭头〞表 示,虚线起点是A,箭头指向B。
5.2 开闭原那么
开闭原那么是基石,其他的设计原那么是开闭原那么的 扩展。
开闭原那么就是对扩展开放对修改关闭。在一个软件设 计中增加新的模块时不需要修改原有模块。
Chocolate());
使用组合方式,可以较好地解决继承的缺点,比方在加 巧克力咖啡中再添加一份巧克力时,通过new Coffee(milk,new Chocolate());很容易实现。
5.4 上下原那么
上下原那么是高内聚低耦合原那么的简称。 内聚表示模块内部各个元素间关联程度,
耦合表示不同模块间关联的程度。 简单地说,高内聚低耦合就是模块内部每
private Rectangle bottom; //底面 private double height; //高 public Cylinder2(Rectangle bottom,double height){
this.bottom=bottom; this.height=height; } public double volume(){//体积 return bottom.area()*height; } }
JAVA面向对象基础PPT课件

• 构造方法的作用
✓ 完成对象的创建,即完成对象的实例化 ✓ 一般使用构造方法来完成对成员变量的初始化
示例 TestPerson.java
构造方法
• 默认的构造方法
✓ 在Java中,每个类都至少要有一个构造方法,如果程序员没有在类 里定义构造方法,系统会自动为这个类产生一个默认的构造方法
class Employee{
Contents
1
类和对象的关系
2
构造方法
3
对象创建的内存模型
4
Java中的关键字
构造方法
• 构造方法(构造函数/构造器,Constructor)
具有与类相同的名称 不含返回值类型 不能在方法中用return语句返回一个值 一般访问权限为public 在一个类中,具有上述特征的方法就是构造方法。
• 类的定义
[访问权限控制符] class 类名 {
类的成员 …
}
✓ 修饰符一般为public,也可以没有修饰符。 ✓ 注意类名的命名规范。类名一般大写 ✓ 类的成员:
➢ 成员变量(属性) ➢ 成员函数(方法) ✓ 通过“.”调用属性和方法
• 类的完全声明形式 [public] [abstract | final] class 类名称 [extends 父类名称] [implements 接口名称列表]
✓}
类和对象的关系
• 类的定义
☻ 练习 MyDate.java
✓ 定义一个点日期MyDate,包含三个成员变量year 、month、day 分别表示年、月、日,以及每个属性对应的get和set方法(如, year有getYear( )方法用来获得日期的年份,还有setYear(int y)方 法用来修改或设置日期的年份),最后还有printDate()方法,调 用该方法可以把日期按照“yyyy-mm-dd”的形式输出。
✓ 完成对象的创建,即完成对象的实例化 ✓ 一般使用构造方法来完成对成员变量的初始化
示例 TestPerson.java
构造方法
• 默认的构造方法
✓ 在Java中,每个类都至少要有一个构造方法,如果程序员没有在类 里定义构造方法,系统会自动为这个类产生一个默认的构造方法
class Employee{
Contents
1
类和对象的关系
2
构造方法
3
对象创建的内存模型
4
Java中的关键字
构造方法
• 构造方法(构造函数/构造器,Constructor)
具有与类相同的名称 不含返回值类型 不能在方法中用return语句返回一个值 一般访问权限为public 在一个类中,具有上述特征的方法就是构造方法。
• 类的定义
[访问权限控制符] class 类名 {
类的成员 …
}
✓ 修饰符一般为public,也可以没有修饰符。 ✓ 注意类名的命名规范。类名一般大写 ✓ 类的成员:
➢ 成员变量(属性) ➢ 成员函数(方法) ✓ 通过“.”调用属性和方法
• 类的完全声明形式 [public] [abstract | final] class 类名称 [extends 父类名称] [implements 接口名称列表]
✓}
类和对象的关系
• 类的定义
☻ 练习 MyDate.java
✓ 定义一个点日期MyDate,包含三个成员变量year 、month、day 分别表示年、月、日,以及每个属性对应的get和set方法(如, year有getYear( )方法用来获得日期的年份,还有setYear(int y)方 法用来修改或设置日期的年份),最后还有printDate()方法,调 用该方法可以把日期按照“yyyy-mm-dd”的形式输出。
面向对象程序设计(Java)PPT课件

</HEAD>
<BODY> <APPLET CODE= "J_HelloApplet.class" WIDTH= 300 HEIGHT= 80> </APPLET>
</BODY>
</HTML>
2020/3/25
23
第1章 绪论
编译源文件 &运行小应用程序
J_HelloApplet.java
J_HelloApplet.class
•{
• public void paint(Graphics g)
•{
•
g.drawString("Hello Applet.", 25, 25);
•
g.drawString("您好, 今天是:"+new Date(), 50, 50);
• } // End of method: paint
• } // End of class: J_HelloApplet
第1章 绪论
面向对象程序设计(Java)
2020/3/25
1
第1章 绪论
第 1 章 绪论
• 第1部分: • 第2部分: • 第3部分:
Java简介 开发环境的建立 我会写 Java程序
2020/3/25
2
第1章 绪论
为什么选择学习Java?
识时务者为俊杰
全球市场调查显示:
• 已经有25亿部电子设备采用Java技术,Java智 能卡发行量已经达到10亿张;
结束
MacOS 工作台
2020/3/25
25
第1章 绪论
Java的基本语法
<BODY> <APPLET CODE= "J_HelloApplet.class" WIDTH= 300 HEIGHT= 80> </APPLET>
</BODY>
</HTML>
2020/3/25
23
第1章 绪论
编译源文件 &运行小应用程序
J_HelloApplet.java
J_HelloApplet.class
•{
• public void paint(Graphics g)
•{
•
g.drawString("Hello Applet.", 25, 25);
•
g.drawString("您好, 今天是:"+new Date(), 50, 50);
• } // End of method: paint
• } // End of class: J_HelloApplet
第1章 绪论
面向对象程序设计(Java)
2020/3/25
1
第1章 绪论
第 1 章 绪论
• 第1部分: • 第2部分: • 第3部分:
Java简介 开发环境的建立 我会写 Java程序
2020/3/25
2
第1章 绪论
为什么选择学习Java?
识时务者为俊杰
全球市场调查显示:
• 已经有25亿部电子设备采用Java技术,Java智 能卡发行量已经达到10亿张;
结束
MacOS 工作台
2020/3/25
25
第1章 绪论
Java的基本语法
java培训ppt课件全套课件ppt

受检查异常是编译器强制要求程序员处理的一类异常,如果不处理,编译会报错。这类异常通常表示程序本身的错误,如文件找不到、网络连接中断等。
Java中的异常处理机制包括捕获异常(Catch)、抛出异常(Throw)和声明异常(Throw)。
Java多线程编程
新建、就绪、运行、阻塞、终止。
线程具有5种状态
字符串编码
String类支持多种编码格式,如UTF-8、GBK等,可以方便地进行字符串的编码和解码。
ArrayList类是一个动态数组,可以根据需要自动增长和缩小。
动态数组
常用操作
线程安全
ArrayList类提供了添加、删除、查找等常用操作的方法。
ArrayList类不是线程安全的,如果需要在多线程环境下使用,可以考虑使用Vector类。
Java语言特点
Web开发、移动开发、大数据、游戏开发等。
Java应用领域
03
常用工具
Git、Maven、Gradle等在Java开发中的使用。
01
JDK安装与配置
下载和安装JDK,配置环境变量等。
02
集成开发环境(IDE)
Eclipse、IntelliJ IDEA等常用Java IDE的介绍和选择。
Java面向对象编程
面向对象编程(OOP)
一种编程范式,通过使用对象来设计和实现软件系统。
对象
现实世界中的事物在计算机中的表示,具有状态和行为。
类
对象的抽象,定义了对象的属性和方法。
实例
类的具体实例,具有类定义的属性和行为。
02
03
04
01
抽象
定义抽象类或抽象方法,用于规定接口和行为,但不实现具体实现细节。
Java中的异常处理机制包括捕获异常(Catch)、抛出异常(Throw)和声明异常(Throw)。
Java多线程编程
新建、就绪、运行、阻塞、终止。
线程具有5种状态
字符串编码
String类支持多种编码格式,如UTF-8、GBK等,可以方便地进行字符串的编码和解码。
ArrayList类是一个动态数组,可以根据需要自动增长和缩小。
动态数组
常用操作
线程安全
ArrayList类提供了添加、删除、查找等常用操作的方法。
ArrayList类不是线程安全的,如果需要在多线程环境下使用,可以考虑使用Vector类。
Java语言特点
Web开发、移动开发、大数据、游戏开发等。
Java应用领域
03
常用工具
Git、Maven、Gradle等在Java开发中的使用。
01
JDK安装与配置
下载和安装JDK,配置环境变量等。
02
集成开发环境(IDE)
Eclipse、IntelliJ IDEA等常用Java IDE的介绍和选择。
Java面向对象编程
面向对象编程(OOP)
一种编程范式,通过使用对象来设计和实现软件系统。
对象
现实世界中的事物在计算机中的表示,具有状态和行为。
类
对象的抽象,定义了对象的属性和方法。
实例
类的具体实例,具有类定义的属性和行为。
02
03
04
01
抽象
定义抽象类或抽象方法,用于规定接口和行为,但不实现具体实现细节。
java面向对象程序设计ppt课件

time.setTime( 99, 99, 99 );
output += "\n\nAfter attempting invalid settings: " +
"\nUniversal time: " + time.toUniversalString() +
"\nStandard time: " + time.toStandardString();
时钟类的设计:
(1) 数据属性: 时(int hour); 分 (int minute); 秒(int second)。
(2) 行为: 设置时间 setTime() ; 显示时间 toUniversalString() 、 toStandardString() ; 走时 (暂时不考虑);
完整最新ppt
完整最新ppt
21
4.4.1 方法的声明与局部变量(续)
例如:
class C1{
实例变量i
int i;
method1(){
局部变量i
int i=0; int j;
取局部变量i的值
this.i=i+10;
j=5;
}
}
通过this.i调用
实例变量i
完整最新ppt
22
4.4.2 方法的参数传递
Java的参数传递方式是通过值来传递的, 也称为“值传递”。对于这种值传递要 区分如下两种情况:
[域修饰符] 类型 域名;
完整最新ppt
12
4.1.3 类成员:构造函数、方法和域(续)
2. 方法
方法一般是对类中的数据成员进行操作。如果类中的数 据成员是private型的,则往往定义一个public的方法来设 置数据成员的值或读取数据成员的值。
Java面向对象精品PPT课件

method n
数据字段(状态)
类的基本概念
类——是一组具有相同属性特征的对象的 抽象描述。
在真实世界里,有许多同“种类”的对象。 而这些同“种类”的对象可被归类为一个 “类”。例如我们可将世界上所有的汽车归 类为汽车类,所有的动物归为动物类。
动物类
汽车类
自然界中生物的一大类,与植物相对。 多以有机物为食料,有神经,有感觉,能运动。
轿车
பைடு நூலகம்
计程车
巴士
多态性——
不同的类对象收到同一个消息可以产生 完全不同的响应效果,这种现象叫做多 态。利用多态机制,用户可以发送一个 通用的消息,而实现的细节由接收对象 自行决定,这样,同一个消息可能会导 致调用不同的方法。
面向对象程序设计
面向对象程序设计(Object-Oriented Programming,OOP)方法是指用面向对 象的方法指导程序设计的整个过程, 所谓面向对象是指以对象为中心,分 析、设计及构造应用程序的机制。
修理电器 开车
自身所承受的操作 施加于其他对象的操作
学生对象: 属性:
学号:0410430129 专业:电气 性别:男 身高:175cm 体重: 65kg 对象的功能: 回答学号 回答专业 回答性别 回答身高 回答体重 体重变化 修理电器 开车
消息的基本概念
消息是一个对象要求另一个对象实施某项操作 的请求。在一条消息中,需要包含消息的接收 者和要求接收者执行哪项操作的请求,而并没 有说明应该怎样做,具体的操作过程由接收者 自行决定。
软件对象是通过传送消息给其他对象来达到交互及 沟通的作用。如下图所示:
对象A
消息
method 1 data field 1 data field n
数据字段(状态)
类的基本概念
类——是一组具有相同属性特征的对象的 抽象描述。
在真实世界里,有许多同“种类”的对象。 而这些同“种类”的对象可被归类为一个 “类”。例如我们可将世界上所有的汽车归 类为汽车类,所有的动物归为动物类。
动物类
汽车类
自然界中生物的一大类,与植物相对。 多以有机物为食料,有神经,有感觉,能运动。
轿车
பைடு நூலகம்
计程车
巴士
多态性——
不同的类对象收到同一个消息可以产生 完全不同的响应效果,这种现象叫做多 态。利用多态机制,用户可以发送一个 通用的消息,而实现的细节由接收对象 自行决定,这样,同一个消息可能会导 致调用不同的方法。
面向对象程序设计
面向对象程序设计(Object-Oriented Programming,OOP)方法是指用面向对 象的方法指导程序设计的整个过程, 所谓面向对象是指以对象为中心,分 析、设计及构造应用程序的机制。
修理电器 开车
自身所承受的操作 施加于其他对象的操作
学生对象: 属性:
学号:0410430129 专业:电气 性别:男 身高:175cm 体重: 65kg 对象的功能: 回答学号 回答专业 回答性别 回答身高 回答体重 体重变化 修理电器 开车
消息的基本概念
消息是一个对象要求另一个对象实施某项操作 的请求。在一条消息中,需要包含消息的接收 者和要求接收者执行哪项操作的请求,而并没 有说明应该怎样做,具体的操作过程由接收者 自行决定。
软件对象是通过传送消息给其他对象来达到交互及 沟通的作用。如下图所示:
对象A
消息
method 1 data field 1 data field n
Java语言ppt课件(完整版)

封装与访问控制
封装(Encapsulation)的原则:将对象的属性和方法封装在类内部,隐藏实现细节,提供公共接口供 外部访问。
访问控制符(Access Modifiers):使用private、protected、public等访问控制符来控制类成员的可 见性和访问权限。
构造函数(Constructor)与析构函数(Destructor):构造函数用于创建对象并初始化属性,析构函 数用于释放对象占用的资源。
3
2011年,Oracle公司收购Sun公司,成为Java的 新东家
Java语言的历史与发展
2014年,JDK 8发布,引入了 Lambda表达式、Stream API等特性
2021年,JDK 16发布,继续增强 Java语言的功能和性能
Java语言的特点与优势
跨平台性
Java语言编写的程序可以在任何支持Java的 平台上运行,无需修改源代码
1996年,JDK 1.1发 布,增加了对内部类 和反射的支持
1995年,Java语言 正式发布,并推出 JDK 1.0
Java语言的历史与发展
1
1998年,JDK 1.2(也被称为Java 2)发布,增 加了Swing图形用户界面库和Java插件
2
2004年,JDK 5.0发布,引入了泛型、自动装箱/ 拆箱、枚举等特性
JSP页面元素
JSP页面由指令、脚本元素、动作 和内置对象等组成。指令用于控 制JSP页面的整体结构,脚本元素 用于嵌入Java代码,动作用于执 行特定的操作,内置对象则提供 了一些常用的功能。
JSP与Servlet的关系
JSP和Servlet都是Java Web开发 中的重要技术,它们之间有着密 切的联系。JSP页面最终会被转换 成Servlet来处理请求,因此可以 说JSP是Servlet的一种特殊形式 。同时,JSP提供了更加简洁和易 用的页面开发方式,而Servlet则 更适合处理复杂的业务逻辑。
第3章Java与面向对象编程精品PPT课件

3.2 类
类的结构
[<修饰符>] class <类名> [extends <父类名>] [implements <接口列表>]
{ 类体 成员变量定义; 成员方法定义;
} 在类的声明格式中,[ ]内部的内容表示可选的, 可以根据需要有选择的进行编写。
3.2 类
1.类的声明
类的声明由修饰符、关键字class、类名、继承 父类、实现接口五部分构成。
例如:
class Student //定义类Student
{ int stu_name; stu_name;
}
//定义类属性
3.2 类
(1)继承父类 关键字extends表示当前类是已经存在的某个
类的子类。 Java语言中只允许单一继承。 类通常不需要从头生成。他们可以从其他的类
派生而来,继承祖先类的可用类成员。即使是从 头创建的新类也必须继承Object类。
方法的异常列表定义了可能抛出的各种异常。
3.2 类
2.方法体 方法的功能实现部分,主要由局部变量和语句
构成。 方法体也可以是空的,即没有任何变量和语句。 例如: void setName(String name){ }
[例3-1]方法的定义
3.2 类
构造方法
(1)构造方法的方法名与类名相同。 (2)构造方法不允许声明返回值。 (3)构造方法的作用是完成对类对象的初始化。 (4)构造方法只能通过new运算符调用,不能通
3.2 类
(2)实现接口 关键字implements表示当前类实现了某个接
口定义的功能或方法。 接口是和类相似一种Java程序的基本单元,是
Java程序用来实现多重继承的一种特殊机制。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如: class People “People” 是类名。习惯上类名的第一个字母大写,
但这不是必须的。
8
2.类体
4.1 类
• 属性 (状态) 通过定义变量来描述 • 行为(功能)通过定义方法来刻画功能。
9
如:定义一个梯形类
class 梯形
{ float 上底,下底,高,laderArea; float 计算面积()
说明: 如果类中没有构造方法,系统会调用默认的构造方
法(默认的构造方法是无参数的)。
22
(3)对象的内存模型
class XiyoujiRenwu
{ float height,weight;
String head, ear,hand,foot, mouth;
void speak(String s)
{ System.out.println(s);
18
class 梯形 { float 上底,下底,高;
梯形() { 上底=60;
下底=100; 高=20;
} 梯形(float x,int y,float h) { 上底=x;
下底=y; 高=h;
} 19
}
课堂练习
编写一个类描述方阵,其中描述方阵的静态 属性包括:维数、内容和动态行为包括:
1 两个n阶方阵的加; 2 两个n阶方阵的减; 3 求方阵的转置矩阵;
类的定义: 成员属性 成员方法
20
4.2 对象的创建与引用
1 创建对象
类是创建对象的模板。当使用一个类创建了一个对象 时,我们也说我们给出了这个类的一个实例。
(1)对象的声明 一般格式为:
类的名字 对象名字; 如: People zhangPing;
21
• (2)为声明的对象分配内存及初始化 使用new运算符和类的构造方法为声明的对象分 配内存及初始化。如: zhangPing=new People();
}
}
public class A
{ public static void main(String args[])
{ XiyoujiRenwu zhubajie; //声明对象
//使用new 运算符和默认的构造方法
zhubajie=new XiyoujiRenwu(); //为对象分配内存
}
}
23
• 当用XiyoujiRenwu类声 明一个变量,即对象 zhubajie时,如例子1中 的对象
//变量定义部分 //方法定义
{ laderArea=(上底+下底)*高/2.0f;
return laderArea;
} void 修改高(float h)
//方法定义
{ 高=h;
}
}
10
4.1 类
3.成员变量说明 定义形式: [修饰符] 类型 成员变量名1, …, 成员变量名n;
说明: • 成员变量在整个类内都有效,局部变量只在定
义它的方法内有效。 • 如果局部变量的名字与成员变量的名字相同,
则成员变量被隐藏,即这个成员变量在这个方 法内暂时失效 。*如果想在该方法内使用成员 变量,必须使用关键字this。
11
4.方法
• 方法首部声明 • 方法体
4.1 类
12
4.1 类
1.方法首部说明
[修饰符]返回值类型 方法名([形参列表][throws 异常列表]
//职员类描述
class Employee{
//静态属性描述
String name;
//姓名
byte age;
//年龄
float salary;
//薪水
//动态行为描述
String getName() { return name;} //显示 姓名
byte getAge() { return age;} //显示年龄
•调用:创建对象时被Java编译器自动调用的。 •当构造一个类的实例时,其主要完成以下工作:
•为对象分配内存空间 •初始化对象中的成员变量的值 •调用对象的构造方法
17
构造函数分类:
1) 缺省的构造方法:无参数。形式如下: public Person() { }
2) 自定义构造方法:可带、也可不带参数。如
JAVA面向对象编程
内容
• 类与对象的相关概念 • 对象的创建与引用 • 封装 • 继承 • 多态 • 接口
2
编程语言的发展
• 机器语言 • 汇编语言 • 面向过程语言 • 面向对象语言
3
例:编写程序实现如下功能: 1 两个n阶方阵的加; 2 两个n阶方阵的减; 3 求方阵的转置;
4
5
职员映射成计算机java语言描述
• 构造方法的名称必须与类名同名; • 构造方法没有返回类型; • 如果一个类未指定构造方法,则只能使用系统
自动提供的无参构造方法创建对象;
16
构造方法说明
•作用:专门用于创建类对象的方法。 •形式:
[修饰符] 方法名([形式参数列表])[throws异常列表] 方法体
注意:没有返回值类型(void也不行)
2.方法体
(1) 方法体
{
//方法体开始
实现方法的代码段 }
//方法体结束
方法体也可以是一个分号“;”,表示无具体
方法(方法还没有实现,即只是一个方法框架。) 13
5.方法重载
4.1 类
• 一个类中可以有多个方法具有相同的名字,但 这些方法的参数必须不同,即或者是参数的个 数不同,或者是参数的类型不同。
float getSalary() { return salary;} // 领取 6
4.1 类
• 类是组成Java程序的基本要素。类封装了一类对 象的状态和方法。类是用来定义对象的模板。
• 类的实现包括两部分:类声明和类体。
7
1.类声明
4.1 类
[修饰符] class 类名 [extends 父类名] [implements 接口列表]
{ return x*y;
}
double getArea(float x,float y,float z)
{ return (x*x+y*y+z*z)*2.0;
}
15
6.构造方法
4.1 类
• 构造方法是一种特殊方法,用来为对象分配内 存空间;
• 初始化对象中的成员变量的值;
• 一个类可以有多个构造方法(重载),根据参数的 不同决定执行哪一个;
14
如:在类 Area中定义了三个getArea重载方法
class Area
{ float getArea(float r)
{ return 3.1பைடு நூலகம்f*r*r;
}
double getArea(float x,int y)
{ return x*y;
}
float getArea(int x,float y)
但这不是必须的。
8
2.类体
4.1 类
• 属性 (状态) 通过定义变量来描述 • 行为(功能)通过定义方法来刻画功能。
9
如:定义一个梯形类
class 梯形
{ float 上底,下底,高,laderArea; float 计算面积()
说明: 如果类中没有构造方法,系统会调用默认的构造方
法(默认的构造方法是无参数的)。
22
(3)对象的内存模型
class XiyoujiRenwu
{ float height,weight;
String head, ear,hand,foot, mouth;
void speak(String s)
{ System.out.println(s);
18
class 梯形 { float 上底,下底,高;
梯形() { 上底=60;
下底=100; 高=20;
} 梯形(float x,int y,float h) { 上底=x;
下底=y; 高=h;
} 19
}
课堂练习
编写一个类描述方阵,其中描述方阵的静态 属性包括:维数、内容和动态行为包括:
1 两个n阶方阵的加; 2 两个n阶方阵的减; 3 求方阵的转置矩阵;
类的定义: 成员属性 成员方法
20
4.2 对象的创建与引用
1 创建对象
类是创建对象的模板。当使用一个类创建了一个对象 时,我们也说我们给出了这个类的一个实例。
(1)对象的声明 一般格式为:
类的名字 对象名字; 如: People zhangPing;
21
• (2)为声明的对象分配内存及初始化 使用new运算符和类的构造方法为声明的对象分 配内存及初始化。如: zhangPing=new People();
}
}
public class A
{ public static void main(String args[])
{ XiyoujiRenwu zhubajie; //声明对象
//使用new 运算符和默认的构造方法
zhubajie=new XiyoujiRenwu(); //为对象分配内存
}
}
23
• 当用XiyoujiRenwu类声 明一个变量,即对象 zhubajie时,如例子1中 的对象
//变量定义部分 //方法定义
{ laderArea=(上底+下底)*高/2.0f;
return laderArea;
} void 修改高(float h)
//方法定义
{ 高=h;
}
}
10
4.1 类
3.成员变量说明 定义形式: [修饰符] 类型 成员变量名1, …, 成员变量名n;
说明: • 成员变量在整个类内都有效,局部变量只在定
义它的方法内有效。 • 如果局部变量的名字与成员变量的名字相同,
则成员变量被隐藏,即这个成员变量在这个方 法内暂时失效 。*如果想在该方法内使用成员 变量,必须使用关键字this。
11
4.方法
• 方法首部声明 • 方法体
4.1 类
12
4.1 类
1.方法首部说明
[修饰符]返回值类型 方法名([形参列表][throws 异常列表]
//职员类描述
class Employee{
//静态属性描述
String name;
//姓名
byte age;
//年龄
float salary;
//薪水
//动态行为描述
String getName() { return name;} //显示 姓名
byte getAge() { return age;} //显示年龄
•调用:创建对象时被Java编译器自动调用的。 •当构造一个类的实例时,其主要完成以下工作:
•为对象分配内存空间 •初始化对象中的成员变量的值 •调用对象的构造方法
17
构造函数分类:
1) 缺省的构造方法:无参数。形式如下: public Person() { }
2) 自定义构造方法:可带、也可不带参数。如
JAVA面向对象编程
内容
• 类与对象的相关概念 • 对象的创建与引用 • 封装 • 继承 • 多态 • 接口
2
编程语言的发展
• 机器语言 • 汇编语言 • 面向过程语言 • 面向对象语言
3
例:编写程序实现如下功能: 1 两个n阶方阵的加; 2 两个n阶方阵的减; 3 求方阵的转置;
4
5
职员映射成计算机java语言描述
• 构造方法的名称必须与类名同名; • 构造方法没有返回类型; • 如果一个类未指定构造方法,则只能使用系统
自动提供的无参构造方法创建对象;
16
构造方法说明
•作用:专门用于创建类对象的方法。 •形式:
[修饰符] 方法名([形式参数列表])[throws异常列表] 方法体
注意:没有返回值类型(void也不行)
2.方法体
(1) 方法体
{
//方法体开始
实现方法的代码段 }
//方法体结束
方法体也可以是一个分号“;”,表示无具体
方法(方法还没有实现,即只是一个方法框架。) 13
5.方法重载
4.1 类
• 一个类中可以有多个方法具有相同的名字,但 这些方法的参数必须不同,即或者是参数的个 数不同,或者是参数的类型不同。
float getSalary() { return salary;} // 领取 6
4.1 类
• 类是组成Java程序的基本要素。类封装了一类对 象的状态和方法。类是用来定义对象的模板。
• 类的实现包括两部分:类声明和类体。
7
1.类声明
4.1 类
[修饰符] class 类名 [extends 父类名] [implements 接口列表]
{ return x*y;
}
double getArea(float x,float y,float z)
{ return (x*x+y*y+z*z)*2.0;
}
15
6.构造方法
4.1 类
• 构造方法是一种特殊方法,用来为对象分配内 存空间;
• 初始化对象中的成员变量的值;
• 一个类可以有多个构造方法(重载),根据参数的 不同决定执行哪一个;
14
如:在类 Area中定义了三个getArea重载方法
class Area
{ float getArea(float r)
{ return 3.1பைடு நூலகம்f*r*r;
}
double getArea(float x,int y)
{ return x*y;
}
float getArea(int x,float y)