欢迎来到天天文库
浏览记录
ID:49408164
大小:794.00 KB
页数:18页
时间:2020-03-01
《Java面向对象程序设计基础.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
Java面向对象程序设计基础1类的结构1.1类声明类的定义:classA{成员变量与成员方法的定义}1.2创建对象对象的创建:Aa;〃对象的声明,即定义A类的一个对象,名为aa=newA();〃对象的创建,即为a对象开辟一个内存区,〃并调用构造方法A()对对象进行初始化上面两步也可以合并为一步:Aa=newA();/^Classl.java*/classMan{intheight;intage;}publicclassClassi{publicstaticvoidmain(String[]args){Manmanl;manl=newMan();man1»height=180;manla);System.out.println(ob2.a);System.out.println(ob3>a);}~/*Classl9ejava*/publicclassClassl9{inta;publicvoidClassl9(){〃这里Class28()不是构造函数a=10;}publicstaticvoidmain(String[]args){Classl9ob=newClassl9(); System.ouLprintln(ob«a);C:ProgramFilesXinoxSoftware2类的成员2.1成员变量和局部变量类体中定义的变量称为成员变量,而类的成员方法中定义的变量以及方法中的形式参数I则称为局部变量。成员变量在整个类体中有效,而局部变量只在定义它的方法中有效。使用局部变量之前必须对其进行初始化,否则编译时会出错。2.2关键字thisthis代表本类的对象;通过它可以引用本类的成员。只能在实例方法中使用this关键字。this()可用于调用本类的构造方法。/^ThisDemoJava*/classThisDemol{intal=l,a2=2;voidss(){intal=10,a2=20;al=this.al;System.out.println(al);System.out.println(a2);}publicclassThisDemo{publicstaticvoidmain(Stringargs[]){ThisDemolaa=newThisDemol();aa.ss();System.out.println(aa.al);}~ 2.3类方法和实例方法有关键字static修饰的称为类方法(又称静态方法)和类变量(又称静态变量),而没有static修饰的称为实例方法和实例变量。实例方法和实例变量只能通过对象名引用,而类方法和类变量既能通过对象名引用,也能通过类名引用。类方法只能直接访问本类中的类成员。/*ConstructorDemoJava*/classConstructorDemol{intal9a2;ConstructorDemol(){〃构造方法al=l;a2=2;}staticvoidpntout(Strings){//类方法System.outprintln(s);}}publicclassConstructorDemo{publicstaticvoidmain(Stringargs[]){ConstructorDemo1abc=newConstructorDemol();System.out.print(*11+2='f);System.out>pnntln(abca2+abc.al);ConstructorDemo1.pntout(M你们好,朋友们!n);}} /*Class3.java*/publicclassClass3{inta;staticvoidsetA(intb){〃静态方法a=b;〃错,静态方法中不能直接访问非静态的成员变量a}publicstaticvoidmain(String[]args){Class3.setA(10);}}/*Class4.java*/publicclassClass4{staticinta;〃静态变量staticvoidhello(){〃静态方法System.out.println(''你好〜~”);}~staticvoidsetA(intb){〃静态方法a=b;hello();}voidprintA(){System.out.println(a);〃非静态方法可以访问静态变量ahello();〃非静态方法也可以访问静态方法helloO}publicstaticvoidmain(String[]args){Class4.setA(100);Class4ob=newClassl5();ob.printAO; A■■-inlxl莎C:ProgramFilesXinoxSoftwareJCreator..100你好"Pressanykeytocontinue・■■2.4访问权限(1)使用在成员变量和成员方法之前的访问控制符成员访问控制符含义private只能在类的内部被访问public能被所有的类访问缺省(friendly)只能被同一个包中的类访问protected可以被同一包中的类或其他包中的子类访问(2)使用在类之前的访问控制符类访问控制符含义public能被所有的类使用缺省(friendly)只能被同一个包中的类使用3类的继承和接口3.1类的继承 一个类可以通过关键字extends继承另一个类,被继承的类称为父类,而继承的类称为子类。子类可以继承父类所有的非私有的成员作为自己的成员。 /*ExtendsDemo.java*/classExtendsDemol{intx=8;privateinty=9;publicdoublez=10;voidpntout(Strings){Svstemprintln(abc>x);Systemw);abc.pntout(”你好,朋友!n);}}3.2重写与关键字super如果子类定义了与父类中完全相同的方法,则称在子类中重写或覆盖了父类的方法,如果子类定义了与父类中完全相同的变量,则称在子类中隐藏了父类的变量。通过关键字super可以在子类中访问被隐藏的父类的变量。supcr()可以调用父类的构造方法。与this关键字一样,也只能在实例方法中使用super关键字。 /*SuperDemo.java*/classSuperDemol{Stringname="灸玲”;intage=18;longtel=66666666;}classSuperDemo2extendsSuperDemol{Stringname=H张三”;intage=30;longtel=88888888;voidSuperDemo2(){name=super.name;age=super.age;〃与父类的成员变量同名〃与父类的成员变量同名〃与父类的成员变量同名〃成员方法〃引用父类的成员变量〃引用父类的成员变量System.out>println(n姓名:K+name);System.out.println(K年龄:11+age);System.out.println(,f电话:M+tel);publicclassSuperDemo{publicstaticvoidmain(Stringargs[]){SuperDemo2abc=newSuperDemo2();abc・SuperDemo2();}}3・3final类和abstract类用关键字final修饰的类称为最终类,即不能派生子类。用关键字final修饰的变量称为最终变量,必须在声明时赋予初始值,使用中不能修改。用关键字abstract修饰的方法称为抽象方法,抽象方法没有方法体。包含有抽象方法的类就是抽象类,抽象类必须用关键字abstract加以修饰。抽象类不能创建对象,但可以派生子类。3.4接口关键字interface用来声明一个接口,通过关键字implements来实现接口。接口体中的所有方法都是抽象方法,所有的属性都默认为static,且都默认为publico 在Java中一个类只能继承一个父类,但可以实现多个接口。实现一个接口必须实现接口中的所有抽象方法,哪怕是空实现。/^AbstractDemo.java^/interfaceAbstractDemo2{intaa=100;floatab=100.0f;voidpntout(Stringss);〃抽象方法}classAbstractDemolimplementsAbstractDemo2{〃实现一个接口publicvoidpntout(Stringss){System.out.println(ss);〃实现接口中的抽象方法}}publicclassAbstractDemo{publicstaticvoidmain(Stringargs[]){AbstractDemolabc=newAbstractDemol();System.out.println(abc.aa);System.out.println(abc.ab);abc.pntout(MIamateacher.1*);}} 4包与import语句在Java中,包指的是接口和类的集合,这些接口和类根据功能的不同,被分别放在不同的包中。包结构的表示方法与目录结构类似,但采用域名表示法,即用点“・”代替“”。包的创建使用package语句,它在当前目录下创建指定的包,并将编译后的类文件放入指定的包中。为了在其他的包中使用所定义的类,必须使用import关键字导入要使用的类。java.lang包是java语言的核心类库(System类和String类均在该包中),系统会自动导入该包中所有的类(importjava.lang.*)o4.1package语句/♦ClasslOJava*/packageMypack.packl;publicclassClasslO{//建立用户自己的类库//ClasslO修饰为public表示能被所有的类访问publicvoidhi(){System.out.println(MHi-”);}•/*CIassllJava*/importMypack.packl.ClasslO;//使用用户自己的类库publicclassClassll{publicstaticvoidmain(String[]args){ClasslOob=newClasslOO;ob.hi();}}阿C:ProgramFilesXinoxSoftware*'.,' 4.2import语句Java程序不但可以利用本程序中定义的类,还可以通过import语句引入Java提供的类。/*Classl2Java*/importjava.util.Date;//使用Java的类库publicclassClassi2{publicstaticvoidmain(String[]args){Dated=newDate();System.outprintln(d);}・}5String类5・1字符串变[(1)字符串变量的创建字符串变量的创建主要有两种:Stringstrl=nIamateachern;或Stringstr2=newString(tfIamateacherH);/♦StringDemo.java*/publicclassStringDemo{publicstaticvoidniain(Stringargs[]){Stringstrl=MIamastudent11;System.outprintln(strl);Stringstr2=newString(strl);System.ouLprintln(str2);Stringstr3=newString(tfIamastudent99);System.out.println(str3);Stringstr4=newStringO;str4=MIamateacher1f;System.outprintln(str4);}・} (2)字符串和字符数组的关系可以通过字符数组来创建一个字符串变量:charchr[]={*t','a;'h',宅,T};Stringstr=nevvString(char);/*StringArrayDemo.java*/publicclassStringArrayDemo{publicstaticvoidmain(Stringargs[]){charchr[]={T,'e‘,'a','c‘,'h','e‘,T};System.out.println(chr);System.outprintln(chr[3]);Stringstrl=newString(chr);SystemShort和Float类。转换时要注意转换的可行性。/*StringToNumber*/publicclassStringToNumber{publicstaticvoidmain(Stringargs[]){System.ouLprintln(FloaLparseFloatC'12.34,f))|System.out.println(lnteger.parselnt(,t123456n));System.out.println(Long.parseLong(H123456789"));System.out.println(Byte.parseByte(*,123n));System.outprintIn(Short.parseShort(M1234M));System.out.println(Double.parseDouble(K12.3456"));}}C:PrograMFilesXinoxSoft..12.34123456123456789123123412.3456Pi'essanykeytocontinue..▲T 1►(2)数值转换为字符串通过使用各数值类的toString()方法,可以将数值转换为字符串:publicstaticStringtoString(基本数据类型)/*NumberToString*/publicclassNumberToString{publicstaticvoidmain(Stringargs[]){System.out.println(Float.toString(12.34f));System>outprintln(IntegentoString(123456));System.out.println(Long.toString(123456789));System.ouLprintlnfDouble.toString(123456));bvtexl=5;System.out.println(Byte.toString(xl));shortx2=6;System
此文档下载收益归作者所有
举报原因
联系方式
详细说明
内容无法转码请点击此处