




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,Java面向对象程序设计,第2章Java程序语言基础,2,本章主要内容,熟悉Java程序的组织形式理解类、对象与成员的概念掌握对象的创建与引用熟悉访问修饰符和方法修饰符的使用掌握Java支持的数据类型与操作符,3,Java程序的组织形式,基本要素保留字:也叫关键字,有特定意义和用途,不能随意使用。class、interface、void、int、double、protected、public、private、static、final、abstract、extends、implements、if、for、while、switch等。标识符:以字母、下划线或美元符($)开头,由字母、数字、下划线或美元符($)组成,区分大小写。可用作变量名、方法名、接口名、类名等。注意:尽量使用有意义的英文单词进行命名,并遵守相应命名规范。,演示标识符,变量名和方法名的命名规范:第一个单词小写,后面单词首字母大写。,4,Java程序的组织形式,基本要素(续)单行注释System.out.println(“Hello!Welcome!”);/行末注释多行注释/*publicvoidrun()*/文档注释可以使用javadoc工具生成HTMLAPI文档/*方法的功能说明*param参数*throws异常*/,演示生成API文档,5,Java程序的组织形式,程序结构以“类”为基础,定义一个类时要使用“class”关键字。一个源文件中可包含多个类,但只能有一个是公共类,并且该公共类的名称要与文件名同名。,演示编译含有多个类的源文件,例如:源程序A.java文件中含有如下代码:publicclassAclassBclassC编译后,生成3个字节码文件:A.class,B.class,C.class,类名的命名规范:首字母大写,6,Java程序的组织形式,包的概念包允许将类组合成较小的单元(类似文件夹)。包的作用有助于避免命名冲突。在使用类时,类的名称很难决定,有时在命名时不得以需要与其他类名同名。包机制能够在一定程度上设置其内部的类、属性和方法的对外可见度。包的创建:package包名;包的导入:import包名.类名;,演示创建与导入包,注意包名的命名规范:全部小写,域名定义。,演示环境变量classpath,7,类与对象,万事万物皆对象。面向对象的编程(OOP)思想实质是使用计算机语言实现对事物的描述,尽可能反映出现实世界事物的本来面目。类是对一类的事物描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,也称实例。程序一般是依赖创建类的实例来驱动运行的。,8,类成员,类定义两方面内容:类中封装的数据,叫做属性或者成员变量;类中封装的操作数据的行为,叫做方法或者成员方法。在实际问题中,对实体类的抽象是最关键的一步,它决定了该系统是否能真实反映实际业务活动。,9,类成员,【例2.3】创建一个计数器类,封装计数数据及其各种操作方法。publicclassAccumulatorprivateintdata;/private表示封装data属性,防止外界修改publicvoidadd()/计数器计数data+;publicvoidreset()/计数器清0data=0;publicintgetData()/返回计数器结果returndata;,pubicstaticvoidmain(Stringargs)Accumulatoracc=newAccumulator();acc.reset();acc.add();acc.add();System.out.println(acc.getData();,10,信息的封装,封装是对对象的一种保护机制,使得它的属性或方法不被外部的程序直接访问。直接操作类内部定义的属性,会导致数据的错误、混乱或安全性问题。例如:publicclassStudentpublicintage;publicstaticvoidmain(Stringargs)Studentstu=newStudent();stu.age=1000;/不合理的设置,11,信息的封装,通过将数据封装、声明为私有的(private),再提供一个或多个公开的(public)方法实现对该属性的操作,以实现下述目的:隐藏一个类的实现细节;防止对封装数据的未经授权的访问。使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作;有利于保证数据的完整性;便于修改,增强代码的可维护性;,12,信息的封装,publicclassStudentprivateintage;publicintgetAge()returnage;publicvoidsetAge(intvAge)age=vAge;,publicvoidsetAge(intvAge)if(vAge200|vAge0)System.out.println(“请输入正确的年龄);elseage=vAge;,13,对象的初始化与构造方法,构造方法是类中特殊的方法,该方法的作用是在对象实例化过程中,帮助完成对象的初始化工作。例如:MyClassmc=newMyClass();new关键字表示创建对象,同时调用构造方法MyClass()。构造方法是在类中定义的,并在对象被创建时所调用的方法,该方法的名称与类名相同,不需要指定返回值,也不需要使用return返回。,14,对象的初始化与构造方法,【例2.9】使用new关键字实例化对象。publicclassMyClassprivateinti=100;publicvoidshow()System.out.println(i);publicstaticvoidmain(Stringargs)MyClassmc=newMyClass();mc.show();,publicclassMyClass/编译器自动提供的默认的无参构造方法MyClass(),15,无参与有参构造方法,【例2.10】调用无参与有参的构造方法。publicclassConstructorConstructor()System.out.println(“无参构造方法被调用!);Constructor(intn)System.out.println(int参数的构造方法被调用!);Constructor(Stringmessage)System.out.println(String参数的构造方法被调用!);,publicstaticvoidmain(Stringargs)ConstructorParacp1=newConstructorPara();ConstructorParacp2=newConstructorPara(12);ConstructorParacp3=newConstructorPara(Hello);,16,方法重载,发生在同一个类中方法名称相同参数列表不同返回类型可以相同或不同构造方法或成员方法均可发生重载【例2.4】,17,引用与对象,MyClassmc=newMyClass();这条语句实际上完成了三件事情:(1)声明了一个引用mc,该引用的类型为MyClass,将只能引用MyClass以及其子类的对象。(2)利用MyClass()构造方法创建了一个MyClass对象。(3)把创建的对象赋给mc引用。,mc=,this.i,0 x1001,null,0 x1001,this.show(),栈内存,堆内存,18,引用与对象this关键字,【例2.14】不同对象对引用的赋值。publicclassReferenceprivateStringname;publicReference(Stringn)name=n;publicvoidshowName()System.out.println(name);,publicstaticvoidmain(Stringargs)Referencer1=newReference(r1);Referencer2=newReference(r2);r1.showName();r1=r2;r1.showName();,publicReference(Stringname),name=name;,=name;,19,引用相等与对象相等的判断,【例2.16】String对象相等的判断publicclassStringEqualspublicstaticvoidmain(Stringargs)Strings1=Helloworld;Strings2=Helloworld;Strings3=newString(Helloworld);System.out.println(s1=s2);System.out.println(s1=s3);System.out.println(s1.equals(s3);,20,访问修饰符,访问修饰符的作用是说明被声明的内容(类、属性、方法)的访问权限。通过访问修饰符把类中将被其他类调用的内容开放出来,而把不希望别人调用的内容隐藏起来。4种访问修饰符:public,private,protected,无修饰符,21,访问修饰符,演示访问修饰符,22,方法修饰符,方法修饰符为方法设置访问权限,包括:staticfinalabstract,23,方法修饰符static,关键字static可以用于修饰变量、方法、代码块。使用static修饰的成员变量和方法,称为静态成员,也称为类成员。静态成员存储于类的存储区,属于整个类,不属于一个具体的类对象,被所有该类的对象共享。因此在不同的类对象中访问静态成员,访问的是同一个。成员声明为static后,无需创建该类的任何对象,直接通过类名称来调用就可以访问。,演示static修饰符,24,方法修饰符static,【例2.7】用static修饰变量、方法、代码块的综合应用。publicclassStaticSamplestaticintx=3;staticinty;staticvoiddisplay()System.out.println(x=+x);System.out.println(y=+y);staticSystem.out.println(staticblock);y=x+2;,pubicstaticvoidmain(Stringargs)StaticSample.display();,25,方法修饰符static,【例2.11】static成员变量的初始化。classClassStaticpublicstaticinti=staticInitMethod();publicstaticintstaticInitMethod()System.out.println(static成员变量被初始化);return12;,pubicstaticvoidmain(Stringargs)System.out.println(访问static成员变量i);inta=ClassStatic.i;System.out.println(创建对象);ClassStaticsi=newClassStatic();,26,方法修饰符final,用final修饰的类不能被继承。用final修饰的变量,值不能被修改,即为常量。用final修饰的方法不能被重写。如果对象已申明为final,对该对象的引用则不能更改,但它的属性值可以更改。,常量的命名规范:所有字母均大写。,27,方法修饰符final,【例2.8】用final修饰常量PI,实现计算圆的面积。publicclassCircleprivatefinaldoublePI=3.14;privatedoubleradius;publicvoidsetRadius(doubleradius)this.radius=radius;publicdoublearea()returnPI*this.radius*this.radius;,28,基本数据类型,一个变量的数据类型决定了变量所能容纳的数值和操作符。Java是一种强类型语言,意味着每一个变量都有一种类型且每一种类型都是经过严格定义的。C与Java基本数据类型的对比,29,基本数据类型,演示基本数据类型,30,数据类型转换,不同类型的数据进行混合运算时,首先需要转换为同一类型然后运算。自动类型转换:也称放大转换。条件:两种类型兼容,目标类型大于源类型,布尔型与其他类型不兼容。强制类型转换:也称缩小转换。条件:源类型大于其目标类型,如float值赋给int类型变量值,此时需要显式类型转换,即doubled=12.1inti=(int)d;,演示数据类型转换,31,包装类,为了能将基本类型视为对象来处理,并能连接相关的方法,Java为每个基本数据类型都提供了包装类。java.lang包中提供了每个基本数据类型对应的包装类。,演示包装类JDK1.5新特性,32,包装类,【例2.18】实现基本数据类型和包装类之间的转换。publicclassConvertpublicstaticvoidmain(Stringargs)intmyInt=12;IntegermyInteger=newInteger(myInt);System.out.println(myIValue();,33
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 7752-2025绝缘胶粘带工频介电强度和耐电压的试验方法
- 2025年山东兴罗投资控股有限公司招聘工作人员(14人)考前自测高频考点模拟试题及1套完整答案详解
- 2025年菏泽市省属公费师范毕业生专项招聘(421人)考前自测高频考点模拟试题及一套参考答案详解
- 2025吉林长春市直事业单位招聘高层次人才17人(4号)考前自测高频考点模拟试题完整答案详解
- 2025年黑河逊克县乡村医生公开招聘19人考前自测高频考点模拟试题含答案详解
- 2025金隅集团春季校园招聘模拟试卷完整答案详解
- 2025年镀锡板卷(马口铁)项目合作计划书
- Heptanoyl-thio-PC-生命科学试剂-MCE
- Haploperoside-A-Scopolin-6-O-α-L-rhamnopyranoside-生命科学试剂-MCE
- 安全培训效果评估改进
- 中华人民共和国标准设计施工总承包招标文件(2012年版)
- 2022年内分泌医疗质量控制评价体系与考核标准
- 全国中小学生学籍信息管理系统学生基本信息采集表(2022修订版)
- 国家公务员行测数量关系(数字推理)模拟试卷1(共253题)
- 北师大版四年级数学上册第五单元《方向与位置》(大单元教学设计)
- (高清版)JTG 5211-2024 农村公路技术状况评定标准
- 人教精通版6年级上下册重点单词和句型默写
- 《民航客舱设备操作与管理》课件-项目二 客舱服务设备
- 大隐静脉消融术手术
- 三D打印公开课
- 生而逢盛世青年当有为 (模板)
评论
0/150
提交评论