版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
类与对象
本节学习目标:
1.理解什么是对象和类
2.学会定义简单的类
3.理解什么是构造函数
4.学会创建与使用对象
5.键盘输入
1
你怎样理解对象与类?
简单地说:
•对象是表示现实世界中某个具体的事物;
•亲是对对象的抽象描述。
对对象进行抽象为类
类(CLASS)
如:
“manclass”
对类进行实例化
张三
类的概念
•类:是一种抽象的数据类型,它
是所有具有一定共性的对象的抽
象。本质上可以认为是对对象的
描述,是创建对象的“模板”。
•类的某一个对象则被称为是类的
一个实例,是类的实例化结果。
3
类的基本结构:
■
二、Java语言的类
1系统提供的类
Java系统为用户提供了大量已定义好的类,
称为Java应用程序接口(JavaAPI)。Java
API是一组由软件供应商编写好的Java程序模块,
每个模块通常对应一种特殊的基本功能和任务。
用户在编程时可以直接引用这些模块。
为了方便系统类的管理和使用,将系统类根
据实现功能的不同,可以分为不同的集合,每个
集合称为一个包(Package),所有的包合称为
类库。
5
2用户自定义类
[修饰符]class类名
(
类成员变量声明;
构造函数声明;
类方法声明;
6
三、对象的创建与构造函数的定义
•一个对象的生命周期包括三个阶段:创建、使用
和消除。Java语言中,系统在判定一个对象确实
再没有被引用时,系统就会自动消除该(即回收
分配给该对象的内存,这就是所谓的垃圾回收)
对象。
对象的创建
对象的创建包括声明、实例化和初始化。
声明一个某类的对象,格式为“类名对象名;”。声明并不
为对象分配内存空间;
实例化:指使用运算符new为对象分配内存空间,一个类的
不同对象分别占据不同的内存空间;
格式为“对象名=new类名();”。
初始化:是指给实例对象的属性字段赋初始值,一般通过调
用对象的构造方法完成。
创建一个对象的语法是(声明和实例化合并):
类名创建的对象名称=new构造函数();
说明:(1)Java语言的对象由类创建,所以应先说
明创建对象所属的类名称,然后再说明创建对象的
名称。
(2)”="表示赋值号,new构造函数(),使
系统为对象创建自己的内存区域并自动调用构造函
数初始化成员变量。
成员变量和成员方法的引用
・同一类中的成员可以相互直接引用。
•处于不同类成员的相互引用需要首先创建对
象,然后才能引用具体的成员。引用格式如
下:
对象名.成员变量名
对象名.方法名(参数列表)
10
构造函数的特征:
•构造函数名与类名相同;
•构造函数没有返回类型,也不是void;
•构造函数可以带有形参,也可以没有形参。
•构造函数的主要作用是实现对象的初始化,
为对象的数据成员赋初值。
11
•构造函数不能由编程人员显式地直接调用,而在
创建对象时,由系统自动调用。如果类中没有显
示的定义构造函数,系统则调用缺省的构造函数
来实现对象的初始化。
•如果类中有显示的定义构造函数,系统将不再提
供缺省的构造函数,构造方法可以有多个.
•创建对象时,构造函数实参的个数和类型应与类
中定义的构造函数的形参的个数和类型相一致。
12
下载本集教程行邪格式请在连接上点右键选萼a另存为,尸
回
主讲教师孙鑫《更多技术,请登录hlIL."www.su11ALl”外
缺省构造方法
■当我们用缺省的构造方法初始化对象
时,系统用默认值初始化对象的成员
变量。
■各种数据类型的默认值为:
数值型0
booleanfalse
char”,\0'
对象null
•举例
以点类为例,分别定义不同的构造函数,带参数的
和不带参数的.
14
成员变量和成员方法的进一步说明:
•类的任何成员方法在内存中只存在一份拷贝.
•类的任何成员变量在内存中各有各的拷贝.
举例:
可为某个类声明不同的对象,并分别输出其成员
变量.
15
■关于实例方法和实例数据成员的进一步说明
一个类所有的实例(对象)调用的成员方法在内
存中只有一份拷贝,尽管在内存中可能有多个对
象,而数据成员在类的每个对象所在内存中都存
在着一份拷贝。th1s变量允许相同的实例方法为不
同的对象工作。每当调用一个实例方法时,this变
量将被设置成引用该实例方法的特定的类对象。
方法的代厨接着会与this所代表的对象的特定数据
建立关联。
•举例
以点类为例,分别定义不同的构造函数,形参和成
员变量同名和不同名的.
17
■静态方法和静态变量是属于某一个类,而
不属于类的对象。
-静态方法和静态变量的引用直接通过类名
引用。
■在静态方法中不能调用非静态的方法和引
用非静态的成员变量。反之,则可以。
■可以用类的对象obj去调用静态的方法
method05如:obj.methodQo
争态变量(类变量)与静态方法(类方法)
静态变量和静态方法统称为类成员,非静态成员(非类成
员)称为实例成员。类成员属于类,由各个对象共同拥有。
1、类变量
•类变量(静态变量):用“static”修饰符声明的成员变量。
•可以直接使用类名来调用。
19
2、静态方法(类方法)
•类方法:用“static”修饰符声明的成员方法。
•静态方法是属于整个类的,只能处理静态成员,而不能处
理属于某个对象的实例成员,因为静态成员是在类被加载时
就被创建了,也就是说在类对象被创建之前就被加载了.(类
是在编译时加载的,而对象是在运行时被创建的)
•可以直接使用类名调用静态成员。
•静态方法中可以使用局部变量。
注意:要有内存模型的概念,不能停留在事物的表面.
20
•举例
需要说明main。方法定义为static的原因.
输出的累计人数
-使用关键字Rnal定义常量,例如:
finaldoublePI=3.1415926;
■作为一种约定,在定义常量时,通常采用
大写形式。-
■final常量可以在声明的同时赋初值,也可以
在构造函数中赋初值。
■为了节省内存,我们通常将常量声明为静
态的(static)o
面向对象的程序设计
■问题:求一个长方形的周长和面积。
以面向对象的程序设计方式思考:
1、一个长方形可以看成一个长方形对象Q
2、一个长方形对象有两个状态(长和宽)和两
个行为(求周长和求面积)。
3、将所有长方形的共性抽取出来,设计一个长
方形类。
4、通过长方形对象的行为,就可以求出某个具
体的K方形对象的周及和面积。
数据的键盘输入
•Scanner类是Java5-0在java,util包中新增力口的——
个类,该类用于输入数据,其数据来源可以是文
件、字符串或键盘等。
•java.util包是系统包,使用之前需要使用import语
句进行引入。
24
使用Scanner类从键盘上输入数据的步骤:
(1)创建一个该类的对象,并指定输入源。
如果要从键盘上输入数据,常用类似于如下的格式:
Scannersc=newScanner(System.in);
其中,System.in在Java语言中表示标准输入设
备(另外,经常使用的System.out表示标准输出
设备,一般指显示器),其实就是键盘,表示要
从键盘上输入数据。
Scanner对象一般使用空格符(包括空格、Tab键和
25换行符)分隔输入的内容。
(2)使用Scanner类提供的方法从数据源取
得数据,Scanner类中定义的nextXXX方法,
将输入内容中的数据取出并转换为不同类型:
nextBoolean():将读到的信息转换为布尔值,并返回;
nextByte():将扫描到的信息转换为byte类型,并返回;
nextDouble():将扫描到的信息转换为double类型,并返回;
nextFloat():将扫描到的信息转换为float类型,并返回;
nextlnt():将扫描到的信息转换为int类型,并返回该值;
nextLong():将扫描到的信息转换为long类型,并返回;
nextShort():将扫描到的信息转换为short类型,并返回;
nextLine():读取一行的内容,并以字符串的形式返回该值。
26
例如,以下代码使用户能够从键盘上(System.in)
读取一个整数,并将读到的数据保存在变量冲:
Scannersc=newScanner(System.in);
inti=sc.nextlntQ;
27
小结:
•对象、类
•类的定义、对象的创建
•属性与方法(成员变量与成员方法)
•构造函数
・静态成员变量与静态成员方法
•面向对象程序设计思想中的抽象、封装特征的体会
28
上机作业:
•题目:
定义一个描述人的类,分别创建一个姓名为“Tom"/"Rose”,性
别为“男"/“女",年龄20岁/30岁的对象(实例),输出这
两个对象的信息。
•要求:
1、定义人类Person。
2、有一些基本的属性和方法
3、定义一个对Person进行初始化的构造方法。
4、对于成员变量的赋值可以采用显示赋值的方式.
29
2定义一个汽车类,可以定义汽车的若干属性,如
品牌、型号、颜色、重量、类别等信息并显示
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026年部编版一年级语文下册第3单元课后练习题
- 2025-2026年中国古代地理知识测试卷
- 妇联相关知识试题及答案
- 互联网平台企业盈利结构演变与绩效评价框构建
- 数字化供应链协同与韧性建设研究
- 耐心资本全链条支持体系构建关键突破点研究
- 银行理财机构在耐心资本产品中的风险管理与创新设计
- 2026年土石方挖掘机司机质量管控考核试卷及答案
- 2026年高考教师监考前考试试题及答案
- 2025年淮盛职业学院高职单招职业技能考试题库附完整答案详解
- 逻辑与思维第一单元单元检测题及答案
- 匹克球介绍课件
- 泌尿结石护理干预措施汇编
- 港口散装液体危险化学品港口经营人的装卸管理人员从业资格试题
- 个人承包槟榔合同范本
- GB/T 191-2025包装储运图形符号标志
- 2.7《风的成因》教学设计-科学三年级上册教科版
- 商法课件完整版本
- GB/T 5617-2025钢件表面淬火硬化层深度的测定
- 企业知识产权保护管理手册
- 688高考高频词拓展+默写检测- 高三英语
评论
0/150
提交评论