第六章--构造方法.ppt_第1页
第六章--构造方法.ppt_第2页
第六章--构造方法.ppt_第3页
第六章--构造方法.ppt_第4页
第六章--构造方法.ppt_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章构造方法及封装,本讲内容,包的概念和使用this关键字构造方法及方法重载封装的实现及访问控制权限,本章目标,掌握构造方法掌握方法重载掌握this关键字的用法。掌握封装的实现及成员的访问控制,为什么需要包,生活案例,文档分门别类,易于查找,不同内容的文档可以放在不同的袋子中,拥有相同的名字,避免冲突,易于管理,包,包解决类的同名问题,允许类组成较小的单元(类似文件夹),易于找到和使用相应的文件,防止命名冲突,更好的保护类、属性和方法,如何创建包,packagecom.my.classandobject;/声明包publicclassSchool/publicStringtoString()/,包名,使用package声明包,以分号结尾,如果有包的声明,一定作为Java源代码的第一条语句,包命名规范,包名由小写字母组成,不能以圆点开头或结尾包名之前最好加上唯一的前缀,通常使用组织倒置的网络域名。如:域名包名后续部分依不同机构内部的规范不同而不同,packagemypackage;,packagenet.javagroup.mypackage;,packagenet.javagroup.research.powerproject;,部门名,项目名,package.mypackage;,如何导入包,为了使用不在同一包中的类,需要在Java程序中使用import关键字导入这个类,importjava.util.*;/导入java.util包中所有类importcom.my.classandobject.School;/导入指定包中指定类,关键字import并不陌生,import包名.类名;,1、系统包:java.util2、自定义包:cn.jbit.classandobject,*:指包中的所有类AccpSchool:指包中的AccpSchool类,小结,School.java位于com.my.classandobject包中,HelloTest.java位于demo包中,下面程序空缺部分需要填入代码吗?如果需要,是什么?,/添加代码2/添加代码3publicclassHelloTestpublicstaticvoidmain(Stringargs)Schoolcenter=newSchool();center.showMessage();,/添加代码1publicclassSchoolpublicvoidshowMessage()System.out.println(“这是丰泽培训中心。);,packagecom.my.classandobject;,packagedemo;,importcom.my.classandobject.*;,声明包的含义:声明当前类所处的位置,导入包的含义:声明在当前类中要使用到的别的类所处的位置,用面向对象描述世界,从现实中抽象出类分三步:1.找出它的种类2.找出它的属性3.找出它的行为,第一步:发现类,根据“对象”抽象出“类”,classDog,名词,各个狗对象,用面向对象描述世界,第二步:发现类的属性,狗类共有的特征:1.品种2.年龄3.昵称4.健康情况5.跟主人的亲密度,classDogStringname=旺财;/昵称inthealth=100;/健康值intlove=0;/亲密度Stringstrain=拉布拉多犬;/品种,只放我关心的属性,名词,用面向对象描述世界,第三步:发现类的方法,狗类共有的行为:1.跑2.吠3.输出狗的信息,动词,classDogStringname=旺财;/昵称inthealth=100;/健康值intlove=0;/亲密度Stringstrain=拉布拉多犬;/品种/*输出狗的信息*/publicvoidprint()/输出狗信息的代码,只放我关心的方法,用面向对象描述世界,类图及画法,使用类图描述类用于分析和设计“类”直观、容易理解,“+”:public“-”:private,类名,返回值类型,类型,属性名,参数:名字:类型,名字:类型,方法名,构造方法,构造方法,public构造方法名()/初始化代码,与类名相同,没有返回值类型,publicPenguin()name=qq;love=20;sex=Q仔;System.out.println(执行构造方法);,可以指定参数,构造方法,构造方法定义:一个在创建对象时被自动调用的特殊方法。构造方法作用:为对象进行初始化(成员变量)工作。,方法重载,方法重载,指同一个类中多个方法:方法名相同参数列表不同,与返回值、访问修饰符无关,this关键字,1、对字段使用this最经常使用this关键字的情况,是在对象的一个字段被方法或构造器的参数屏蔽时,需要调用这个被屏蔽的字段的这种情况。如:,this关键字,2、对构造器使用this在一个构造器中,还可以使用this关键字来调用同一个类中的另外的构造器。这种做法称之为“显式构造器调用”。如:,封装一,含义1:把属性和行为封装在类中,把对象的全部属性和全部行为结合在一起,形成一个不可分割的独立单位(即对象)。classPersonStringname;intage;publicvoideat()System.out.println(“eatwithmouth.”);publicvoidshout()System.out.println(“myageis”+age);,封装二,含义2:信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界或者说形成一道屏障,只保留有限的对外接口使之与外部发生联系。把成员变量声明为private,提供public的方法对其进行访问或修改,隐藏类的实现细节。classPersonprivateStringname;privateintage;publicvoidsetName(Stringname)=name;publicStringgetName()returnname;,封装的好处,封装的好处,隐藏类的实现细节,只能通过规定方法访问数据,方便加入控制语句,方便修改实现,修改属性的可见性,在getter/setter方法中加入属性控制语句,创建getter/setter方法,classDogprivateStringname=旺财;/昵称privateinthealth=100;/健康值privateintlove=0;/亲密度privateStringstrain=拉布拉多犬;/品种publicintgetHealth()returnhealth;publicvoidsetHealth(inthealth)if(health100|health0)this.health=40;System.out.println(健康值应该在0和100之间,默认值是40);elsethis.health=health;/其它getter/setter方法,封装的实现,封装的步骤,设为private,用于属性的读写,对属性值的合法性进行判断,this代表当前对象,1,2,2,3,控制类成员的访问,访问级别修饰符用来决定其他类是否能访问一个特定的字段或调用一个特定的方法。有两种级别的访问控制:最高级别:public,或包级私有(package-private,没有指定修饰符),用于修饰类。成员级别:public、private、protected,或者包级私有(package-private,没有指定修饰符),用于修饰类中的成员。,访问级别,总结,你学到了吗?this关键字的用法构造方法及方法重载封装的实现及访问权限控制,上机练习,1、创建一个商品类(product),商品有名称,编号,单价等属性,使用封装的概念封装成员变量,创建一个测试类(Test)生成具体商品。2、定义一个学生类(Student),有姓名、年龄、性别、专业四个属性,使用封装的概念封装成员变量(setter、getter方法),使用方法重载增加两个构造方法,分别实现:A、仅给姓名和年龄传参赋值,其他两个属性取默认值B、给所有属性传参赋值以上所有给年龄赋值的方法(包括setter方法及构造

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论