您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > Java程序设计基础教程第二章类与对象
一、编程语言发展的几个阶段(1)机器语言这些语言中的指令都是由0和1组成的序列,称这样的序列为一条机器指令。(2)面向过程的语言以事件为中心的编程思想。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用。这种语言对底层硬件,内存等操作比较方便,但是写代码和调试维护等会很麻烦。(3)面向对象的语言把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。其对底层的操作不是很方便。二、面向对象编程取代面向过程编程有哪些原因(1)以对象为模型去描述现实世界,更接近于人类对现实世界各种事物的理解。(2)通过封装、继承、多态,更有利于代码重用。三、面向对象编程的3个特性(1)封装性:将数据和对数据的操作封装到一起。例题:classPerson{Stringname;intage;voidwalk(){System.out.println(会走路);}}(2)继承性:子类可以继承父类的属性和功能,同时又可以增添自己的属性和功能。例题:classPerson{Stringname;intage;voidwalk(){System.out.println(会走路);}}classStudentextendsPerson{Stringno;voidtakeLessons(){System.out.println(我喜欢所有的课程);}}(3)多态性:即多种形态。有2中意义的多态:一种是操作名称的多态,即方法的重载。另一种是和继承有关的多态,是指统一操作被不同类型的对象调用时可能产生不同的行为,即运行时刻多态。方法重载:classPerson{Stringname;intage;voidwalk(){System.out.println(canwalk);}}classStudentextendsPerson{Stringno;voidtakeLessons(){System.out.println(我喜欢所有的课程);}voidtakeLessons(Stringcour){System.out.println(我也喜欢+cour);}publicstaticvoidmain(String[]args){StudentzhangSan=newStudent();zhangSan.name=张三;zhangSan.age=18;System.out.println(我叫+zhangSan.name+,我的年龄是+zhangSan.age+岁);zhangSan.takeLessons();zhangSan.takeLessons(java);}}运行时刻多态:classAnimal{voidcry(){}}classCatextendsAnimal{voidcry(){System.out.println(喵喵...);}}classDogextendsAnimal{voidcry(){System.out.println(汪汪...);}}publicclassTestCry{publicstaticvoidmain(String[]args){Animala=newCat();a.cry();a=newDog();a.cry();}}四、类(一)系统定义的类Java系统提供的类库也称为javaAPI,它是系统提供的已实现的标准类的集合,按其用途被划分为若干个不同的包。J2SE中将javaAPI主要分成3个包:(1)java核心包:java.*;包括:applet、awt、beans、io、lang、math、net、sql、text、util等。(2)java扩展的包:javax.*;包括:swing、security、rmi等。(3)组织的包:org.*;主要用于CORBA和XML处理。★关键词import例题:importjava.util.Date;classTestP{publicstaticvoidmain(String[]args){Dated=newDate();System.out.println(d);}}(二)用户自己定义的类(1)类的声明和类体publicclassPerson{privateStringaddress;privateStringname;privateintage;publicStringgetName(){returnname;}publicintgetAge(){returnage;}publicvoidchangeName(Stringnew_name){name=new_name;}publicvoidincAge(){age++;}publicvoidsetAge(intnew_age){age=new_age;}publicStringgetAddress(){returnaddress;}publicvoidsetAddress(Stringx){address=x;}publicStringtoString(){Strings=Name:+name+\n;s+=Age:+age+\n;s+=Address:+address+\n;returns;}publicstaticvoidmain(String[]args){}}五、对象的创建和引用(1)创建对象及访问对象成员例题:为上例添加main方法。publicstaticvoidmain(String[]args){Personp1=newPerson();Personp2=newPerson();p1.changeName(John);p1.setAge(23);p1.setAddress(江西);p1.incAge();p2.changeName(MaryAnn);p2.setAge(22);p2.setAddress(北京);Personp3=p1;p3.age++;System.out.println(姓名=+p1.getName()+,地址=+p1.getAddress());System.out.println(姓名=+p2.getName()+,地址=+p2.getAddress());}(2)对象的初始化和构造方法给对象的变量赋值有以下几种方法:①创建对象时赋初值,(全部清零)。例题:classTestInit{intx;publicstaticvoidmain(String[]args){TestInitt=newTestInit();System.out.println(t.x);}}★基本数据类型作为成员变量时的初始值:基本数据类型默认值booleanfalsechar‘\u0000’(null)byte(byte)0short(short)0int0long0Lfloat0.0Fdouble0.0D例题:classTestValue{booleanb1;byteb2;shortb3;intb4;longb5;charb6;floatb7;doubleb8;Stringb9;publicstaticvoidmain(String[]args){TestValuet=newTestValue();System.out.println(t.b1=+t.b1);System.out.println(t.b2=+t.b2);System.out.println(t.b3=+t.b3);System.out.println(t.b4=+t.b4);System.out.println(t.b5=+t.b5);System.out.println(t.b6=+t.b6);System.out.println(t.b7=+t.b7);System.out.println(t.b8=+t.b8);System.out.println(t.b9=+t.b9);}}②定义初始化。例题:classTestInit{intx=1;publicstaticvoidmain(String[]args){TestInitt=newTestInit();System.out.println(t.x);}}③初始化块。例题:classTestInit{intx;{x=2;}publicstaticvoidmain(String[]args){TestInitt=newTestInit();System.out.println(t.x);}}④构造方法。例题:classTestInit{intx=1;TestInit(intk){x=k;}publicstaticvoidmain(String[]args){TestInitt=newTestInit(10);System.out.println(t.x);}}六、变量的作用域①成员变量:整个类体内有效。②局部变量:从声明点到方法体结束或代码块结束。③方法的参数:整个方法体。例题:publicclassScope{intx;//成员变量inty;{x=2;y=1;}publicvoidmethod(inta){intx=5;for(inti=1;ia;i++){x=x+i;}System.out.println(x=+x+,y=+y+,a=+a);}publicstaticvoidmain(String[]args){Scopex=newScope();x.method(6);}}七、类变量和静态方法成员变量分为两类:①实例成员变量,实例变量:对象所有。②静态成员变量,静态变量,类变量:类所有。例题:classTestStatic{intx;staticinty=1;publicstaticvoidmain(String[]args){TestStatict1=newTestStatic();t1.x=1;t1.y=2;TestStatict2=newTestStatic();t2.x=3;t2.y=4;y=y+1;TestStatic.y=9;System.out.println(t1.x=+t1.x);System.out.println(t1.y=+t1.y);System.out.println(t2.x=+t2.x);System.out.println(t2.y=+t2.y);System.out.println(y=+y);System.out.println(TestStatic.y=+TestStatic.y);}}例题:classTalkPlace{staticStringtalkArea=;}publicclassUser{staticintcount=0;Stringusername;intage;publicUser(Stringname,intyourage){username=name;age=yourage;}voidlogin(){count++;System.out.println(youareno+count+user);}voidspeak(Stringwords){TalkPlace.talkArea=TalkPlace.talkArea+username+说:+words+\n;}publicstaticvoidmain(String[]args){Userx1=newUser(张三,20);x1.login();x1.speak(hello);Userx2=newUser(李四,16);x2.login();x2.speak(goodmorning);x1.speak(bye);System.out.println(--讨论区内容如下:);System.out.println(TalkPlace.talkArea);}}成员方法分为两类:①实例方法:由对象名调用。②静态方法,类方法:类名调用或对象名调用。★只能处理静态变量,只能调用静态方法。例题:classTestStaticMethod{voidf(){System.out.printl
本文标题:Java程序设计基础教程第二章类与对象
链接地址:https://www.777doc.com/doc-2878796 .html