资源描述:
《Java课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、●面向对象程序设计●类与对象●构造方法●参数传递●static●包●文档注释第三章对象和类●面向对象程序设计公共数据函数函数函数函数算法+数据结构数据方法方法数据方法方法过程式程序设计OOP程序设计对象+类+继承+消息消息●类与对象汽车设计图第一辆第二辆第三辆●类与对象●类:抽象的集合概念系统类库中已定义好的类用户自定义的类●对象(实例instance):实际个体创建某个类的具体对象例如:Strings=newString(“Hello!”);●类与对象●类的定义[类修饰符]class类名[extends
2、超类名][implements接口名]{成员变量(数据成员)定义;构造方法(constructor);方法定义(method);}注意:如果方法中有与成员变量同名的局部变量,该方法对这个变量名的引用是局部变量;多个类可以放在一个源文件中,也可以位于不同的源文件,每个源文件只包括一个public类;类中成分的位置可根据个人的书写习惯调整。例:EmployeeTest.java●类与对象●对象的产生和使用●创建:类名欲创建的对象名(引用变量)=new类名(参数表);●引用:对象名.方法(参数)注意:编译之后,
3、对于源文件中的每一个类生成一个.class文件。Employeep1=newEmployee("CarlCracker",75000,1987,12,15);Employeep2=newEmployee();p1.raiseSalary(5);●类与对象0x3000name:CarlCrackersalary:75000hireDay:1987-12-15Employeep10x3000Employeep1newEmployee("CarlCracker",75000,1987,12,15)=Employ
4、eep2p1;=0x3000name:CarlCrackersalary:75000hireDay:1987-12-15Employeep10x3000p20x3000●类与对象●对象的产生和使用●创建●引用●变成垃圾的几种情况离开引用变量的作用域引用变量=null{Employeep1=newEmployee();…}{Employeep1=newEmployee();…p1=null;…}{Employeep1=newEmployee();Employeep2=p1;p1=null;…}●类与对象●实
5、现类的封装●成员变量使用private修饰符●通过public的方法访问成员变量setXxxgetXxx●优点:可以改变内部实现;set方法可以进行错误检查●私有方法(private)●与类的使用者无关的方法●如果类的实现改变了,不容易维护的方法●构造方法●构造方法的定义与作用●方法名与类名相同●没有返回类型(注意:void)●不能直接引用(new,this)●创建类的新的对象时自动执行,一般完成初始化操作publicEmployee(Stringn,doubles,intyear,intmonth,in
6、tday){name=n;salary=s;GregorianCalendarcalendar=newGregorianCalendar(year,month-1,day);hireDay=calendar.getTime();}●构造方法●构造方法的重载●重载(overloading):指类中多个方法享有相同的名字,方法的参数不同(不能用返回类型区别)●重载构造方法可以完成不同的初始化操作注意:在构造方法中没有明确赋值的成员变量会自动地赋以默认值,但这不是一种好的做法。例:OverloadTest.ja
7、va,EmployeeTest.javapublicEmployee(Stringn,doubles,intyear,intmonth,intday)publicEmployee()●构造方法●构造方法的其他特点●如果一个类没有定义构造方法,则系统自动生成一个默认的构造方法●如果定义了构造方法,则系统不再提供默认的构造方法●如果定义了构造方法,一般需要提供一个无参数的构造方法●构造方法一般为pubicclassTest{}classTest{publicTest(){}}classTest{intage;
8、publicTest(intx){age=x;}}●this●方法的形参与成员变量相同●在构造方法中调用其他重载的构造方法classPerson{Stringname;publicPerson(Stringname){this.name=name;}}classPerson{Stringname;intage;publicPerson(Stringname){this.name=name;}publicPerson(Strin