类的封装性构造方法的使用和匿名对象.docVIP

类的封装性构造方法的使用和匿名对象.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
类的封装性构造方法的使用和匿名对象

类中方法的使用 一个类中肯定会有多个方法 class? { ??? String name; ??? int age; ??? void say () ??? { ??????? System.out.println(Hello); ??? } ??? void print() ??? { ??????? say(); ??? } } public class ooDemo01 { ??? public static void main (String args[]) ??????? Person p=new Person (); ??????? p.print(); } 我们发现print()方法调用了say()方法,类中的方法确实可以相互调用哈~ class Person? { ??? String name; ??? int age; ??? void say () ??? { ??????? System.out.println(Hello); ??? } ??? void print() ??? { ??????? //如果特别想表示是在本类中的方法,我们可以在前面加上this. ??????? this.say(); ??? } } public class ooDemo01 { ??? public static void main(String args[]) ??? { ??????? Person p=new Person(); ??????? p.print(); ??? } } 程序执行效果一样哈~ 我们看一下一个练习题哈,找出程序中的错误,并将错误改正哈~ 对象没有被实例化就直接使用了,则肯定在运行的时候会出现错误 —— NullPointerException。 这样就OK了~~ 封装 用我们上次类似的程序例子哈: 我们发现程序执行正常哈~ 我们看下不加封装的时候程序的效果: 这个程序从语法上来说没有任何错误。可以我年龄不可以是-26哈~~造成这种笑话的根本原因在于属性对外部直接可见了。此时就只有加上封装进行操作。 一个属性前面加上了private则此属性对外部就不可见了。即:外部是不能直接访问的。 JAVA EE(J2EE)原则:对于封装的属性的设置和取得必须通过setter和getter方法,而且这两个方法也有自己的严格的命名要求。 //命名要求哈~ private String name; public void setName(String n) { name=n; } public String getName() { return name; } 我们通过setter和getter方法,两个值确实赋值上去了哈~ 但是不符合常理的值没有受到检查哈。 Setter是入口。Getter是出口,应该在setter方法处检查。而getter方法只是将值简单的返回。我们接着往下看哈~ 我们发现年龄赋的-26判断为非法年龄了哈。 如果我们赋值年龄是正26呢? OK,输出了正常的年龄哈,这就是加入封装后的好处哈~~~ 加入封装之后,所有的操作都是通过方法的调用完成的。 构造方法 什么叫构造方法? 构造方法定义:构造方法是为类中的属性初始化的。 回顾: 对象产生的格式:类名称 对象名称 = new 类名称() ; 其中类名称() 就表示调用的构造方法 一个类在使用时肯定至少拥有一个构造方法,如果在类中没有声明构造方法,则肯定会自动生成一个无参的什么都不做的构造方法。 在这种情况下,程序会出错吗?我们验证一下哈~发现程序执行正常哈~效果一模一样,说明确实生成了这样一种构造方法。 构造方法的定义及使用 我们发现声明对象时,构造方法有没有被调用哈,执行效果说明没有被调用哈~ 我们加一行代码p=new Person();将对象实例化 现在我们看下效果,确实构造方法被调用了 改进程序: 使用构造方法为类中的属性初始化。 我们验证一下: 我们发现一个错误找不到构造函数Person(),程序咋找无参的构造函数Person(),我们分析一下哈 我们发现上面我们定义了一个无参构造函数哈 回顾: 如果一个类中没有明确声明任何一个构造方法,则肯定自动生成一个无参的什么都不做的构造方法,相反如果一个类中已经明确的声明了一个构造方法,则不会再自动生成构造,也就是说一个类中至少保持有一个构造方法。 如果我们一定要使用Person p=new Person();我们可以在Person类中再定义一个无参的构造方法,现在Person类中有两个构造方法,其中参数的个数和类型不同,这种情况叫做构造方法的重载。 我们继续改进我们的程

文档评论(0)

aicencen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档