版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象的Java实现-封装为什么需要封装 2-1编写一个类,代表ZhuoYue教员,要求:具有属性:姓名、年龄具有行为:自我介绍ZhuoYue教员的最小年龄要求:22岁2public class ZhuoYueTeacher1public String name; / 教员姓名public int age; /年龄/* * 返回自我介绍的内容 */public String introduction() return 大家好!我是 + name + ,我今年+ age+岁;为什么需要封装 2-2编写一个测试类,要求:实例化一个教员对象,并对其初始化在控制台输出该教员的自我介绍3public
2、class ZhuoYueTeacher1Test public static void main(String args) ZhuoYueTeacher1 teacher = new ZhuoYueTeacher1(); = 李芳;teacher.age =10;System.out.println(roduction(); 要满足教员的最小年龄要求,可以通过对属性的封装来实现大家好!我是李芳,我今年10岁什么是封装封装,就是隐藏实现细节将属性私有化,提供公有方法访问私有属性通过这些公有方法访问私有属性 4public class ZhuoYue
3、Teacher2 private String name; / 教员姓名/ 返回教员姓名public String getName() return name;/ 设定教员姓名public void setName(String name) = name;ZhuoYueTeacher2 teacher = new ZhuoYueTeacher2();teacher.setName (李芳);String tName = teacher.getName();通过setter、getter方法访问name属性this代表当前类的实例如何实现封装2-1封装的实现:1、修改属性的可
4、见性来限制对属性的访问2、为每个属性创建一对赋值(setter)方法和取值(getter) 方法,用于对这些属性的访问3、在setter和getter方法中,加入对属性的存取限制5public class ZhuoYueTeacher3 private String name; / 教员姓名private int age; /年龄public int getAge() return age;public void setAge(int age) if (age22) System.out.println(错误!最小年龄应为22岁!);this.age = 22; /如果不符合年龄要求,则赋予默
5、认值 else this.age = age; /此处省略对name属性的setter、getter方法123如何实现封装2-26public class ZhuoYueTeacher3Test public static void main(String args) ZhuoYueTeacher3 teacher = new ZhuoYueTeacher3();teacher.setName (李芳);teacher.setAge(10);System.out.println(roduction();使用封装,增加了数据访问限制,增强了程序的可维护性 错误!最小年龄应为
6、22岁!大家好!我是李芳,我今年22岁测试类通过调用setter方法,为对象的各个属性赋值课堂讨论 使用private关键字修饰某个成员变量后,这个成员变量可以被同一包中的其它类访问吗?在Java程序中,代码封装带给我们的好处是什么?7现场编程8编写学生类,输出学生相关信息编写教员类,输出教员相关信息学生类属性:姓名(小于5个汉字)年龄(大于18岁)身高(1m-2.5m)参加的课程方法:显示学员个人信息教员类属性:姓名(小于5个汉字)专业方向教授的课程教龄方法:显示教员个人信息为什么需要构造方法2-1开发ZhuoYue教员类ZhuoYueTeacher4,要求:具有属性:姓名、年龄、学历、职位
7、具有行为:自我介绍9public class ZhuoYueTeacher4 private String name; / 姓名private int age; / 年龄private String education; / 学历private String position; / 职位public String introduction() return 大家好!我是 + name + ,我今年” + age + 岁,学历“ +education+,目前职位是+position;public String getName() return name;public void setName(S
8、tring myName) name = myName;/ 以下是其他属性的setter、getter方法,此处省略为什么需要构造方法2-2编写一个测试类,要求:实例化一个教员对象,并对其初始化在控制台输出该教员的自我介绍10public class ZhuoYueTeacher4Test public static void main(String args) ZhuoYueTeacher4 teacher = new ZhuoYueTeacher4();teacher.setName(李芳);teacher.setAge(23);teacher.setEducation(本科);Syste
9、m.out.println(roduction();要简化对象初始化的代码,可以通过构造方法来解决 大家好!我是李芳,我今年23岁,学历本科,目前职位是nullZhuoYueTeacher4中有太多的属性及对应的setter方法,在初始化时,很容易就忘记了,有没有可能简化对象初始化的代码?什么是构造方法构造方法负责对象成员的初始化工作,为实例变量赋予合适的初始值构造方法必须满足以下语法规则:1、方法名与类名相同2、没有返回类型11public class ZhuoYueTeacher5 private String name; / 教员姓名/ 构造方法public Zhu
10、oYueTeacher5() name = 无名氏;public class ZhuoYueTeacher5Test public static void main(String args) ZhuoYueTeacher5 teacher = new ZhuoYueTeacher5();使用new关键字调用构造方法带参数的构造方法 2-1通过带参数的构造方法,显式地为实例变量赋予初始值 12public class ZhuoYueTeacher6 private String name; / 教员姓名private int age; / 年龄private String education;
11、/ 学历private String position; / 职位/ 带参数的构造方法public ZhuoYueTeacher6(String pName,int pAge,String pEducation,String pPosition) name = pName;age = pAge; / 可以增加对age等属性的存取限制条件education = pEducation;position = pPosition;public String introduction() return 大家好!我是 + name + ,我今年 + age + 岁,学历 + education + ,目前
12、职位是+position;带参数的构造方法 2-2通过调用带参数的构造方法,简化对象初始化的代码13public class ZhuoYueTeacher6Test public static void main(String args) ZhuoYueTeacher6 teacher = new ZhuoYueTeacher6(李芳“, 23, 本科, 咨询师);System.out.println(roduction();创建对象时,一并完成了对象成员的初始化工作大家好!我是李芳,我今年23岁,学历本科,目前职位是咨询师生活中的方法重载14类方法方法参数方法实现吃吃米
13、上灯台、偷吃、下不来、抓住、吃如果用代码实现,我们需要三个方法,这些方法的方法名称相同,参数类型不同 方法重载的代码示例 1方法重载并不陌生java.io.PrintStream类的println方法能够打印数据并换行,根据数据类型的不同,有多种实现方式15public class Test public static void main(String args) int i = 0;char c = z;String str = hello;System.out.println(i);System.out.println(c);System.out.println(str);PrintStr
14、eamprintln(int)println(char)println(String)方法名相同,参数类型不同调用不同的println方法方法重载方法重载的代码示例 2java.lang.Math类的max()方法能够从两个数字中取出最大值,它有多种实现方式运行时,Java虚拟机先判断给定参数的类型,然后决定到底执行哪个max()方法16Mathmax(int a,int b)max(float a,float b)max(long a,long b)max(double a,double b)public class Test public static void main(String a
15、rgs) Math.max(1,2);Math.max(1.0F,2.F);Math.max(1.0,2);方法重载构造方法重载构造方法也可以进行重载public class ZhuoYueTeacher7 private String name; / 教员姓名private int age; / 年龄private String position; / 职位public ZhuoYueTeacher7()public ZhuoYueTeacher7(String pName,int pAge,String pPosition) /重载的构造方法name = pName;age = pAge;
16、 / 可以增加对age等属性的存取限制条件position = pPosition;public String introduction() return 大家好!我是 + name + ,我今年 + age + 岁,学历 + education + ,目前职位是+position;构造方法重载 2-1构造方法重载是方法重载的典型示例18public class ZhuoYueTeacher7 private String name; / 教员姓名private String school = “西洪校区”; / 所在校区public ZhuoYueTeacher7(String name)
17、 = name; /设定教员姓名public ZhuoYueTeacher7(String name, String school) = name; /设定教员姓名this.school = school; /设定教员的所在校区public String introduction() return 大家好!我是 + school + 的 + name ;构造方法重载构造方法重载 2-2通过调用不同的构造方法来表达对象的多种初始化行为例如:默认情况下,教师来自西洪校区,初始化时,只需提供教员姓名有时,需要提供所在校区名称及教员姓名19public class
18、 ZhuoYueTeacher7Test public static void main(String args) ZhuoYueTeacher7 teacher1 = new ZhuoYueTeacher7(李芳);System.out.println(roduction();ZhuoYueTeacher7 teacher2 = new ZhuoYueTeacher7(张欣, 大学城校区);System.out.println(roduction();大家好!我是西洪校区的李芳大家好!我是大学城校区的张欣作 业20编写 账户类(Account):具有属性:账号ID(cardId)、余额(balance)、密码(password
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 低钾血症的护理技术创新
- 先兆流产的护理临床优化
- 2026年幼儿园初学拼音
- 2026年幼儿园区分左右
- 2026年佝偻病幼儿园
- 发热惊厥患儿的应急处理方法
- 2026年元素游戏幼儿园
- 双胞胎婴儿护理经验交流分享
- 2026年幼儿园拜师礼
- 2026年中级银行从业资格之中级银行管理高分题库附答案详解【能力提升】
- 2026四川德阳市什邡市教育和体育局选调高(职)中教师13人备考题库附答案详解
- 2026江西赣州市安远县东江水务集团有限公司第一批人员招聘10人备考题库含答案详解(b卷)
- 2026年花样滑冰赛事品牌建设与营销创新案例研究
- 2026年考研数学一模拟单套试卷(含解析)
- 2026年广州市黄埔区事业单位招聘笔试参考题库及答案解析
- 旅馆防偷拍工作制度
- 2026贵州贵阳市信昌融合实业发展有限公司招聘16人笔试备考试题及答案解析
- 2026年四川发展控股有限责任公司校园招聘笔试参考题库及答案解析
- 2026年辽宁省公务员省考《行政职业能力测验》真题解析
- TCCIIA 0004-2024 精细化工产品 分类
- 突发事件创伤伤员医疗救治规范2025年版
评论
0/150
提交评论