1 / 22
文档名称:

面向对象基础(02)-类的封装性、构造方法的使用和匿名对象.doc

格式:doc   大小:1,681KB   页数:22页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

面向对象基础(02)-类的封装性、构造方法的使用和匿名对象.doc

上传人:rsqcpza 2020/6/10 文件大小:1.64 MB

下载得到文件列表

面向对象基础(02)-类的封装性、构造方法的使用和匿名对象.doc

相关文档

文档介绍

文档介绍:(02)本季讲解了类的封装性的实现及JAVAEE中对封装属性的访问标准。又通过构造方法的概念详细讲解了对象实例化时的每一步操作及匿名对象的使用。本季的知识点有:类的封装性、构造方法的使用和匿名对象。blog:[零基础学JAVA]JavaSE面向对象部分-(02)2008-12-19上季内容回顾:1、类与对象的关系 2、对象实例化之后才可以使用,如果使用了没有实例化(开辟了堆内存空间的)的对象则会出现NullPointerException。 3、引用传递和垃圾的产生 本季目标本季讲解了类的封装性的实现及JAVAEE中对封装属性的访问标准。又通过构造方法的概念详细讲解了对象实例化时的每一步操作及匿名对象的使用。本季的知识点有:类的封装性、构造方法的使用和匿名对象。 类中方法的使用一个类中肯定会有多个方法class  {    Stringname;    intage;    voidsay()    {        ("Hello");    }    voidprint()    {        say();    } } lassooDemo01 {    publicstaticvoidmain(Stringargs[])        Personp=newPerson();        (); }我们发现print()方法调用了say()方法,类中的方法确实可以相互调用哈~classPerson  {    Stringname;    intage;    voidsay()    {        ("Hello");    }    voidprint()    {        //如果特别想表示是在本类中的方法,我们可以在前面加上this.         ();    } } lassooDemo01 {    publicstaticvoidmain(Stringargs[])    {        Personp=newPerson();        ();    } }程序执行效果一样哈~我们看一下一个练****题哈,找出程序中的错误,并将错误改正哈~对象没有被实例化就直接使用了,则肯定在运行的时候会出现错误—— NullPointerException。这样就OK了~~封装用我们上次类似的程序例子哈:我们发现程序执行正常哈~我们看下不加封装的时候程序的效果:这个程序从语法上来说没有任何错误。可以我年龄不可以是-26哈~~造成这种笑话的根本原因在于属性对外部直接可见了。此时就只有加上封装进行操作。一个属性前面加上了private则此属性对外部就不可见了。即:外部是不能直接访问的。 JAVAEE(J2EE)原则:对于封装的属性的设置和取得必须通过setter和getter方法,而且这两个方法也有自己的严格的命名要求。//命名要求哈~privateString name; publicvoidsetName(Stringn) { name=n; } publicStringgetName() { returnname; }我们通过setter和getter方法,两个值确实赋值上去了哈~但是不符合常理的值没有受到检查哈。Setter是入口。Getter是出口,应该在setter方法处检查。而getter方法只是将值简单的返回。我们接着往下看哈~我们发现年龄赋的-26判断为非法年龄了哈。如果我们赋值年龄是正26呢?OK,输出了正常的年龄哈,这就是加入封装后的好处哈~~~加入封装之后,所有的操作都是通过方法的调用完成的。构造方法什么叫构造方法? 构造方法定义:构造方法是为类中的属性初始化的。回顾: 对象产生的格式:类名称对象名称=new 类名称() ;其中类名称() 就表示调用的构造方法一个类在使用时肯定至少拥有一个构造方法,如果在类中没有声明构造方法,则肯定会自动生成一个无参的什么都不做的构造方法。在这种情况下,程序会出错吗?我们验证一下哈~发现程序执行正常哈~效果一模一样,说明确实生成了这样一种构造方法。构造方法的定义及使用我们发现声明对象时,构造方法有没有被调用哈,执行效果说明没有被调用哈~我们加一行代码p=newPerson();将对象实例化