欢迎来到天天文库
浏览记录
ID:81932162
大小:326.00 KB
页数:54页
时间:2022-10-14
《第6章-创建对象》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第6章创建对象主讲:胡伏湘回顾与复习Java提供了哪些循环语句?数组是下标是从哪个数字开始编号的?有一个数组a[4][5],它有多少个元素?请一个学生写出数组a[4][5]的全部元素。基本数据类型的参数传递与引用变量的参数传递结果有什么不同?本章提要主要知识点:类的实例化;构造方法;对象的使用;对象的清除。学习目标:能根据已经定义了的类进行实例化,并能运用对象编写代码完成一定的功能。6.1创建对象6.1.1对象的实例化对象实例化的格式是:类型对象名=new类型([参数列表]);其中,类型表示对象的类型,必须是
2、复合类型,包括类、字符串等,对象名是一个合法的标识符。参数列表要根据类的形式参数确定,与之匹配。如:Personwangming=newPerson();6.1创建对象6.1.2对象的引用类的成员(包括成员属性和成员方法)必须要在产生对象即实例化后才能被引用,引用的方法是:对象名.成员2.引用对象的方法格式:对象引用.方法名([参数列表]);6.1创建对象6.1.3方法的参数传递1.基本数据类型的参数传递基本类型的变量作为实参传递,并不能改变这个变量的值。方法中的形式参数相当于局部变量,方法调用结束后自行释放
3、,不会影响主程序中的同名变量对象的引用变量并不是对象本身,而是对象的句柄(名称),一个对象可以有多个句柄6.1创建对象举例:分析下面程序的运行结果。classPassValue{publicstaticvoidmain(Stringargs[]){intx=5;chang(x);System.out.println(x);}publicstaticvoidchang(intx){x=3;}}6.1创建对象6.1.3方法的参数传递2.引用变量的参数传递引用数据类型(如:类、接口)的参数调用可以改变对象的内容举例
4、:分析下面程序的运行结果。6.1创建对象classPassRef{intx;publicstaticvoidmain(String[]args){PassRefobj=newPassRef();obj.x=5;chang(obj);System.out.println(obj.x);}publicstaticvoidchang(PassRefobj){obj.x=3;}}6.1创建对象6.1.4对象的消失Java运行时系统通过垃圾收集器GarbargeCollector周期性地释放无用对象所占的内存,以完成对
5、象的清除Java的垃圾收集器自动扫描对象的动态内存空间,对正在使用的对象加上标记,将所有引用的对象作为垃圾收集起来并释放.思考一下假如有一个类Person,问以下实例化操作哪个是正确的。Personxiaoliu=newPerson;Personxiaoliu=newPerson();Personxiaoliu()=newPerson;6.2构造方法例1:构造方法引例classPerson{//分析运行结果publicPerson(){System.out.println("方法Person被调用了");}p
6、rivateintage=22;publicvoidshout(){System.out.println("我的年龄已经到了"+age);}}classTestPerson{publicstaticvoidmain(String[]args){Personp1=newPerson();p1.shout();//Personp2=newPerson();p2.shout();//Personp3=newPerson();p3.shout();}}6.2构造方法6.2.1构造方法的定义构造方法的特征:具有与类相同
7、的名称不能含有返回类型,也不能是void的不能在方法中用return语句返回一个值在类实例化时,它会由系统自动调用6.2构造方法定义:构造方法是java创建的伪方法,是一种实例方法,名称与其类名相同,是通过new关键字来调用的。构造方法的执行顺序:在创建对象时,对象所在类的所有属性会首先进行初始化,在类的所有成员初始化完成后,才调用对象所在类的构造方法创建对象,构造方法的功能就是初始化。6.2构造方法例2:构造方法的调用classSuperClass{SuperClass(){System.out.print
8、ln("SuperClass的构造方法");}}publicclassSubClassextendsSuperClass{SubClass(){System.out.println("SubClass的构造方法");}publicstaticvoidmain(String[]args){SubClasssub=newSubClass();}}6.2构造方法小结:在子类中只实例化了一个子类对象。从输出
此文档下载收益归作者所有