版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章 创建类和方法 200906 21,2,回顾,面向对象的基本概念 四个概念三个原则 对象和类 类库 类的封装 类的多态 String类和StringBuffer类的应用,3,目 标,实例和类的定义 定义方法和使用 应用程序传参 类的构造方法,4,Java类的定义,类是组成Java程序的基本要素。它封装了一类对象的状态和方法,是这一类对象的原型。,类的修饰字 class 类名称 extends 父类名称implements 接口名称列表 变量定义及初始化; 方法定义及方法体; ,类体,其中定义了该类中所有的变量和该类所支持的方法,称为成员变量和成员方法。,5,Java语言的类类的修饰符,类
2、的修饰符,访问控制修饰符,抽象类修饰符,最终类修饰符,public,缺省的访问修饰符,类的修饰符 class 类名称 extends 父类名称implements 接口名称列表,abstract,final,6,Java语言的类类名称,与Java的其他标识符一样,类名有如下设置: 以字母、字符“-” 或“$”开头 只能含有大于十六进制00C0以上的Unicode字符 不能使用与Java关键字相同的类名 类名通常以大写字母开头,如果类名由多个单词组成,则每一个单词的开头字母也大写,7,Java语言的类类体,类体中定义了该类所有的变量(属性)和该类所支持的方法。通常变量在方法前定义(并不一定要求)
3、,如下所示:,类声明 成员变量定义; 构造函数定义; 成员方法定义; ,8,Java的类体域的声明,域,也就是类的属性或变量。声明域的格式为 其中, 内的内容为可选项,当初始值可能是一个表达式,也可能是一个对象。,域修饰符类型 变量= 初始值,变量;,9,域的声明变量,变量的声明格式: 类型 变量名=初值; 变量的声明例子: byte b;int length,width;double d1=0.23,d2=56.7; /double是类型名,d1,d2是变量名,0.23和56.7是初值boolean mycom=true;char myChar=b;,域修饰符类型 变量= 初始值,变量;,1
4、0,域的声明域修饰符,域修饰符类型 变量= 初始值,变量;,域的修饰符,访问控制修饰符,静态域修饰符,其他修饰符,public,static,transient,最终域修饰符,final,放在内存中的临时的变量。在网络传输时使用,节省资源,默认的,protected,private,11,Java的类体方法的声明,方法声明了可以被调用的代码,传递固定数量的参数。方法声明的格式为:,方法修饰符 结果类型 方法名(参数列表) throws子句方法的体,final void move(int dx, int dy) throws IOException x += dx; y += dy; ,例:,1
5、2,方法的声明命名,Java中方法的命名包括方法名和参数列表两部分,方法名的命名规则与其他标示符规则一致 Java中允许相同方法名但参数列表不同的方法存在,方法修饰符 结果类型 方法名(参数列表) throws子句方法的体,class point implements Move int x,y; abstract void move(int dx, int dy); void move(int dx, int dy) x += dx; y += dy; ,class point implements Move int x,y; abstract void move(int dx); void
6、move(int dx, int dy) x += dx; y += dy; ,13,方法的声明方法修饰符,方法的修饰符,访问控制修饰符,静态方法修饰符,public,protected,private,static,最终方法修饰符,final,同步方法修饰符,synchronized,表明这个方法不是用 Java 语言而是由一种本机语言编写的。,默认的,14,方法的声明方法的参数,参数的类型可以是简单数据类型,也可以是引用数据类型(数组、类或接口),数据类型(数组、类或接口),参数传递方式是值传递。,class A static void change(int i) i = 100; pub
7、lic static void main(String args) int i = 10; change(i); System.out.println(i); ,运行结果:10,15,方法的声明方法的体,方法体是对方法的实现。它包括局部变量的声明以及所有合法的Java指令。局部变量的作用域只在该方法内部。 如果方法提供实现,但是实现部分可以不要求任何可执行的代码,方法的体还是应该当作个语句块写出,即“”。 如果方法被声明为void,那么,方法的体中就不能含有return语句。如果方法的声明中含有返回类型,则方法的体中必须含有return语句,16,main方法,main方法在Java应用程序中
8、表示程序执行的起 main方法是Java应用程序中惟一与用户直接交换信息的方法,必须声明为public static和void,不能返回往何值。它的定义格式如下:,public static void main(String args) 方法体,17,向方法传递参数,class Test int a,b; Test(int i,int j) a=i; b=j; /可以在函数中改变对象状态 void change(Test obj) obj.a=50; obj.b=40; ,当对象作为函数参数时,在函数中只能改变该对象的状态,但不能改变该对象的引用,void swapobj(Day x,Day
9、y) Day temp=y; y=x; x=temp; ,引用本身 按值传递,调用swapobj(obj1,obj2),改变对象状态,Exceise向方法传递参数,18,命令行参数,Java 应用程序可以从命令行中接收任意数量的参数 每个参数被视为字符串分别存储在main函数的参数数组中 可以使用双引号将多个字符串作为一个整体显示 class ComndLineArg1 public static void main(String args ) for(int i=0;iargs.length;i+) System.out.println(argsi); ,输出 结果,输出 结果,19,方法重
10、载(overloading),方法重载是Java实现面向对象的多态性机制的一种方式。 同一个类中多个方法有相同的名字,不同的参数列表,这种情况称为方法重载。 返回类型不同并不足以构成方法重载。 当重载方法被调用时,编译器根据参数的类型和数量来确定实际调用哪个重载方法的版本。,20,方法重载示例,class Calculation public void add( int a, int b) int c = a + b; System.out.println(两个整数相加得 + c); public void add( float a, float b) float c = a + b; Sys
11、tem.out.println(两个浮点数相加得+c); public void add( String a, String b) String c = a + b; System.out.println(两个字符串相加得 + c); ,class CalculationDemo public static void main(String args) Calculation c = new Calculation(); c.add(10,20); c.add(40.0F, 35.65F); c.add(早上, 好); ,编译器决定调用版本,21,Java的类体构造函数,并非类的成员方法,而是
12、一个用来创建对象的特殊方法,用来初始化对象的属性 构造器的名字与类名相同,所有的Java类都至少有一个构造器。例如,MyClass类的构造器为MyClass(),class MyClass public int myCount; public MyClass(int i) myCount = i; ,22,构造函数方法,构造函数名称与类名称相同 构造函数没有返回类型 其任务是在创建对象时初始化其内部状态,class Fruit boolean seedLess; boolean seasonal; float price; Fruit(boolean seed, boolean season, float p) seedLess = seed; seasonal = season; price = p; ,23,重载构造函数,Java 为每一个类自动提供缺省构造函数 缺省构造函数将成员变量的值初始化为缺省值 一旦创建了自己的构造函数,缺省的构造函数将不复存在。 重载构造函数提供了一组创建对象的方式,可以根据需要决定是否带初始参数。,public class constructOverload int x; constructOverload() x=0; System.out.println(不带参数的构
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大学中药学(中药资源开发)试题及答案
- 2025年高职物联网工程技术(物联网组网)试题及答案
- 2025年大学天文学(宇宙学)试题及答案
- 2025年高职酒店管理与数字化运营(餐饮运营管理)试题及答案
- 司年产9800万副眼镜配件技改项目可行性研究报告模板-申批备案
- 2026学年上海市文来中学(高中)教师招聘备考题库及答案详解(易错题)
- 2025新中产健康生活趋势报告
- 2026中国科学院机关招聘应届毕业生5人备考题库及一套完整答案详解
- 2025浙江丽水市莲都区土地和房屋征收工作指导中心招聘见习生1人备考题库及一套参考答案详解
- 2022-2023学年广东深圳龙岗区九年级上学期阶段性训练英语试题及答案
- GB/T 24526-2009炭素材料全硫含量测定方法
- GB/T 17793-2010加工铜及铜合金板带材外形尺寸及允许偏差
- 六个盒子诊断调查表+解析
- GB/T 15107-2005旅游鞋
- GB/T 1184-1996形状和位置公差未注公差值
- 单晶结构分析原理与实践
- 蒸汽管道安装监理实施细则
- 2022年武汉首义科技创新投资发展集团有限公司招聘笔试试题及答案解析
- 旅游地接合作协议(模板)
- 众智SUN日照分析软件操作手册
- 儿童急性中毒(课堂PPT)
评论
0/150
提交评论