Java讲义5-类与对象_图文
Java程序设计4对象和类PPT课件
Java程序设计程序设计程序设计程
2
序设计
4.1 什么是对象
对象是什么?
对象就是组成现实世界的个体,它们之间存在着错综复杂 的关系,正是这种关系的存在构成了丰富多彩的世界。面 向对象的分析就是要把这些对象以及对象之间的关系找出 来。
现实生活中的ห้องสมุดไป่ตู้象
学生、课程、教师、选课单... 一个银行转帐监视系统中的帐户、交易、审查策略...
addCourse(Course cor) showAcademicRecord()
aStudent : Student 对象的简化符号
对象的符号
aStudent:Student
id=”2005061234” name=”张华” grnder=’男’ speciality=”计算机”
Java程序设计程序设计程序设计程
Eden Space
JVM heap中不同对象存在区域(generation)的位置
Java程序设计程序设计程序设计程
12
序设计
4.2 进一步了解对象
封装 对象之间的关系-消息、组合和聚合 类
Java程序设计程序设计程序设计程
13
序设计
4.2 进一步了解对象(cont.)
1.封装
对于软件世界,对象就是一个由属性集和方法集构成的独 立存在。在面向对象领域中把这种构成称为封装 (Encapsulation),封装技术带来的直接优势就是信息 隐藏(Information-hiding)和模块化(Modularity),就是在 进行设计时所追求的低耦合、高内聚。
String speciality; private date birthdate;
Java程序设计程序设计程序设计程
第5章类与对象ppt课件
❖ 2、类中常量和引用的初始化:初始化表 ❖ 3、类中对象成员的初始化:初始化表 ❖ 4、类的对象初始化:拷贝构造函数
第5章 类与对象
(1)构造函数的概念
❖ 构造函数的功能是在创建对象时,使用给定的值来将对 象初始化。
❖ 其声明格式为“<函数名> ( <参数列表>);”
❖
float m_Radius;
❖ public:
❖
void SetRadius(float Radius);
❖
float GetCircumference();
❖ };
❖ void Circle::SetRadius(float Radius)
❖{
❖
m_Radius=Radius;
❖}
❖ float Circle::GetCircumference()
❖ 其中,“.”用于类对象或引用,“->”用于指向类对象的指针, 使用指针定义对象就需要使用“->”,
第5章 类与对象
类对象成员的访问
案例名称:类对象成员的访问
# include <iostream.h> class Tdate { private:
int month; public:
void setMonth(int d) {
Zhang_three.height = 175;
// Chang_three的身高175
Zhang_three.weight = 60;
// Chang_three的体重60
cout << "名字 : " << Zhang_
Java入门篇(六)——类和对象
Java⼊门篇(六)——类和对象 写到这⾥终于写到了⼊门篇的最后⼀个知识点了。
类和对象是Java中经常被提到的两个词汇,实际上可以将类看作对象的载体,它定义了对象所具有的功能。
Java是⾯向对象的语⾔,因此掌握类与对象是学习Java语⾔的基础。
类和对象的概念就不在此描述了,这篇随笔还是主要从代码⽅⾯⼊⼿,在学习本篇前建议先了解⼀下类和对象的概念、实例的概念以及⾯向对象程序的特点,也即封装、继承、多态。
⼀、类 类是封装对象的属性和⾏为的载体,在Java语⾔中对象的属性以成员变量的形式存在,⽽对象的⽅法以成员⽅法的形式存在。
1. 类的构造⽅法 构造⽅法是⼀个与类同名的⽅法,对象的创建就是通过构造⽅法完成的,构造⽅法分为有参构造⽅法和⽆参构造⽅法,区别就在于有没有参数。
说这么多概念是不是感觉有点⿇⽊,直接看下⾯的例⼦吧。
1public class Example {23public Example() { // 定义⽆参构造⽅法4 System.out.println("⽆参构造⽅法");5 }67public Example(String name) { // 定义有参构造⽅法8 System.out.println("有参构造⽅法");9 }1011 } 在定义构造⽅法时,构造⽅法没有返回值,且构造⽅法不需要void关键字进⾏修饰。
“public”是构造⽅法的修饰符,“Example”是构造⽅法的名称。
在构造⽅法中可以为成员变量赋值,这样当实例化⼀个本类的对象时,相应的成员变量也将被初始化。
2. 类的主⽅法 主⽅法其实我们已经见过很多次了,Java编译器通过主⽅法来执⾏程序,是类的⼊⼝点,语法格式如下:public static void main(String[] args) {// ...} “static”是指主⽅法是静态的,若在其中调⽤其它⽅法,则该⽅法也必须是静态的;”void”是指主⽅法没有返回值;“String[] args”是指主⽅法的形参为数组,⽤args[0]~args[n]分别表⽰程序的第⼀到第n个参数,可以使⽤args.length获取参数的个数。
《java类与对象》PPT课件
方法
量尺寸 裁缝
缝衣服 得到工具
缝衣服的步骤
11
类和对象的区别
类和对象
类定义实体
类是概念模型, 定义对象的所 有特性和所需 的操作 类是对象的原型 对象是真实的模型
对象是实际的实体
所有属于同一个类 的对象都具有相同 的特性和操作
12
面向对象的基本特征
13
封装性
信息隐藏,隐藏对象的实现细节,不让用户看到
25
类中的方法
方法的名称
方法返回的对象类 型或原始类型
方法的定义
方法的主体
参数列表
26
类中的方法
语法 <returntype> <methodname> (<type1> <arg1>, <type2> <arg2>,…) { <set of statements> } 其中, <returntype> 是方法返回值的数据类型 <methodname> 是用户自定义的方法名称 方法的参数列表是一组变量声明。 <set of statements>是方法的主体
35
构造方法
每当创建给定类的实例时就调用的方法
与类同名,但没有返回类型 Java 为对象分配内存,初始化实例变量时调用构 造方法 两种构造方法
参数化构造方法
隐式构造方法
36
隐式构造方法的示例
class Sdate { int month=11; int day=27; int year=1969;
子类 - 绘制和移动矩形
Rectangle Draw () { DrawRectangle } Move () { MoveRectangleCorner }
java课件-类和对象
参数列表, 可选
• 举例:
public void setdate(int day, int month, int year){ day=23; month=7; year=2003; 14 }
成员变量的声明
成员变量修饰符 private 无 protected public static final volatile transient
- 通过引用类的任一实例
声明为static的变量实 质上就是全局变量
不管创建了类的多少实例,整个类中静态变
class StaticDemo { static int x = 0; StaticDemo(){x++;} }
- 通过类的名称 StaticDemo d1 StaticDemo d1 = new StaticDemo(); = new StaticDemo(); StaticDemo d2 = new StaticDemo(); = new StaticDemo(); StaticDemo d2 d1.x = 100 ; StaticDemo.x = 100; 通过类实例访问 d2.x = 200; StaticDemo.x = 200; 不是一个好方法 通过类名访问 testVariable = d1.x; testVariable = StaticDemo.x;
类
抽 象
实 例 化
数据或变量
方法
属性或状态
对象
操作或行为
9
创建类 2-1
Java中定义类的通用格式:
class name { type variable1; … type variableN;
在类中,属性是通过成员变 量体现的,而操作是用成员 函数(又称为方法)实现的。
java类与对象ppt
类和对象 对象的成员 类的成员 构造函数 重载 类的继承 方法覆盖 多态性与动态绑定 Java访问权限
2
3.1.1 面向对象程序设计概述
◦ Java作为90年代新出现的面向对象的编程语言,其语言 特点充分体现出面向对象的思想。
◦ 面向对象程序设计(简称OOP)是当今主 开发技术。
}
10
类是对象创建的模板。
任何一个对象都是属于某一个类的。
使用对象之前必须先创建对象。即,先进行声明, 再实例化对象,之后就可以通过对象去调用成员变 量或方法了。
要获得一个类的对象需要两步:
第一步,对象的声明。
类型 对象名;
第二步,为对象分配内存。通过new运算符调用构造方法创 建对象实体,并把该对象的引用赋给该变量。
◦ 修饰符可以是:public 、protected、private、默认(不 写),static,final。
20
成员变量含有自带的初值,根据不同类型有所不同, int为0,double为0.0,bealoon为false,复合数 据类型为null。
成员变量在整个类内都有效,其有效性与它在类体 中书写的先后位置无关。
▪ 通过对象去访问实例成员变量和调用实例方法。 ▪ 通过类名可以直接访问类成员变量和调用类成员方法。
3.2.1 方法 方法定义的一般格式如下: [修饰符] 返回类型 方法名( [形参列表] ) {
//方法体,由若干的语句组成 } 其中的修饰符可以是public 、protected、
private、默认(不写),用于定义它的访问控制 权限,还可以是static 、final等。
类的定义包括两部分:类声明和类体。基本格式 如下:
class 类名 {
05章 Java类和对象
© 2007 Brilliance Technology All rights reserved.
议题
类与对象介绍 面向对象的三大特征 Java 语言修饰符
© 2007 Brilliance Technology All rights reserved.
2
类与对象
类是对某一类事物的描述,是抽象的、概念上的定义;对象
5
创建对象
创建对象格式 <类名> <对象名> = new <类名> ( [ <参数列表 > ] )
例如:
Cat myCat=new Cat(); 以上语句包括对象声明和对象创建两个部分。通常这两部分是结合在一 起的,即声明对象的同时对其初始化。
© 2007 Brilliance Technology All rights reserved.
class cat{ public String name; public double weight; public void eat(){ System.out.println(name+”said:I like eat fish!”); } }
其中,class是定义类的关键字,<类名>是所定义的类的名字,extends表示该类 继承了它的父类,父类名指明父类的名称,implements表示类所实现的接口,若 实现多个接口则用逗号隔开。
18
this引用
在方法内,this关键字可以为调用了方法的那个对象生成相应 的地址,从而获得了对调用本方法的那个对象的引用。
需要注意的是,当一个变量被声明为static时,是不能用this
来指向的,因为this指向某一具体对象,不能用来指示类本身。 this还可以用在某个构造函数的第一句,用来调用该类的另
java05类的构建与对象的使用 (2)
第五章类的构建与对象的使用一、大纲1.掌握的类的创建和使用2.掌握方法的重载3.掌握对象的初始化和使用二、实验目标:1.掌握类的概念和创建方法2.掌握对象的概念和创建方法3.掌握掌握方法的重载4.掌握掌握类的继承5.掌握掌握方法的覆盖三、实验方式:要求学生自己独立完成四、上机指导任务4.1任务1:编程(时间:20分钟)4.1.1 任务描述(1)编写员工类Employee。
该类有如下属性:id(编号int型)sex(性别char型)name(姓名String型)duty(职务String型)salary(薪水double型)holidays(请假天数int型)(2)该类有如下方法display(),无返回值,该方法能打印员工的姓名、性别以及职务三个属性getDecMoney(int day) 返回值是int型。
该方法能计算员工因请假扣除的工资。
计算扣除工资的方法是:如果请假天数<=3,则扣款为30×请假天数;如果请假天数超过3天,则扣款为50×请假天数。
参数day表示请假天数。
(3)该类的构造方法如下Employee(int id, char sex,String name,String duty, double salary,int holidays)(4)编写Main类,在Main类的main方法中,创建一个员工类的对象,并调用其display()和getDecMoney方法。
4.1.2任务目的(1)掌握类的定义、构造方法的作用和对象的创建。
4.1.3任务要求(1)在调用display()和getDecMoney()方法时,要给出相应的提示,例如,getDecMoney()方法能计算出扣款额,打印时要提示:该员工因请假扣除工资××元。
4.1.4 难点提示(1)无4.2任务2:员工类方法的重载(时间:20分钟)4.2.1 任务描述(1)接上一题,员工类的构造方法是:Employee(int id, char sex,String name,String duty, double salary,int holidays)(2)现实生活中有时构造Employee对象时,不能确定该员工的职务、薪水和请假天数。
Java面向对象实用教程 第5章 类和对象
}
this
this指向当前对象本身
class Circle { int r;
Circle(int r) {this.r=r;} public area() { return r*r*3;} }
常见编程错误
带有void关键字构造函数是一个很隐蔽的错 误
一旦给构造函数提供返回类型,它就不是一 个构造函数了,而仅仅是一个普通的实例方 法了
Java类的继承 void set_capacity(int trash_car_capacity) { capacity=trash_car_capacity;}
void show_capacity();
{ System.out.println(“My capacity is: ”+
class Car
系统提供默认构造方法
5.4 类的构造方法
【例5.6】 创建一个简单的类,说明类的 初步应用。
构造函数
constructor(构造函数),在一个类中和类同
名的方法叫构cla造ss函U数seP.系oin统t{在创建对象时通
过new运算符自pu动bl调ic s用ta.tic void main(String args[])
有的功能 封装实现:通过类的声明。
抽象实例——钟表
数据抽象:
int Hour, int Minute, int Second
方法抽象:
SetTime( ), ShowTime( )
封装和关联
variables methods
message
对象B 对象 A
单独的对象是没有什么用的,多个对象联
ClassA cc=new ClassA (); cc.y=90; //非法操作 } }
Java编程基础及应用第5章类和对象
对象是表示现实世界中某个具体的事物,对象与实体
是一一对应的,也就是说万物皆对象,这是一个具体 的概念。
5.1.1 类与对象的关系
举例说明:
名字 狗 毛发颜色 年龄 汪汪叫 成员方法 摇尾巴 成员变量
5.1.1 类与对象的关系
用抽象的方式将上述事例与计算机世界相对应。
计算机 世界 对象 现实世界
Java编程基础及应用
第5章 类和对象
第五章 类和对象
5.1 类和对象概述 5.2 构造方法 5.3 类和成员的修饰符 5.4 this关键字 5.5 本章小结
第五章 类和对象
5.1 类和对象概述 5.2 构造方法 5.3 类和成员的修饰符 5.4 this关键字 5.5 本章小结
5.1 类和对象概述
在面向对象技术中,类(Class)和对象(Object)是最 基本、最重要的组成单元。类实际上是对客观世界中
某类群体的一些基本特征的抽象。对象表示一个个具
体的事物。事物的属性可以用变量描述,行为可以用 方法描述。
类是定义属性和行为的模板,对象是类的实例 (instance),对象与类的关系就像变量和数据类型的
5.1.2 类的定义
(4)每个类都拥有自己的名字空间,即类及其方法和变量可以在
一定的范围内知道彼此的存在,可以使用。 (5)父类继承:extends父类名(见第六章类的继承与多态性)。
(6)接口实现:implements 接口名(见第九章接口和实现)。
(7)类的目的是抽象出一类实物共有的属性和行为,并用一定的 语法格式来描述所抽象出的属性和行为,即数据以及在数据上所进 行的操作。因此类体的内容由以下两部分构成: 变量的声明:存储属性的值(体现对象的属性)。 方法的定义:方法可以对类中声明的变量进行操作(体现对 象所具有的行为)。
Java基础课程05-第五章 类和对象
编译错误
}
返回类型要匘配
方法调用
• 方法是个“黑匣子”,完成某个特定的应用程序 功能,并返回结果
• 方法调用:执行方法中包含的语句
对象名.方法名();
小结
• 编写一个音乐类,添加歌名,类别,歌手,时长属性,添加 播放,暂停/继续播放,停止等方法,并编写测试类显示音 乐信息 • 编写一个手机类,添加手机型号,颜色,品牉属性,添加打 电话,发短信,拍照方法,并编写测试类显示手机信息
带参数的构造方法
• 通过调用带参数的构造方法,简化对象初始化的代码
public class TeacherTest { public static void main(String[] args) { Teacher teacher = new Teacher("李芳", 23, “本科”, “销售助理"); System.out.println(teacher.introduction()); } 创建对象时,一并完成了对 } 象成员的初始化工作 大家好!我是李芳,我今年23岁,学历本科,目前职位是销售助理
包 A.java
允许类组成较小的单元(类似 文件夹),易于找到和使用相 应的文件 防止命名冲突
更好的保护类、数 据和方法
如何创建包
使用package声明包, 以分号结尾 如果有包的声明,一定 作为Java源代码的第一条 语句
package chapter5.code ; public class Test{ …… public String toString(){ …… } }
}
private String name; // 姓名 // 构造方法 public Teacher() { name = “张三"; }