《面向对象编程基础》PPT课件.ppt

上传人:wuy****n92 文档编号:77657931 上传时间:2023-03-16 格式:PPT 页数:71 大小:108.50KB
返回 下载 相关 举报
《面向对象编程基础》PPT课件.ppt_第1页
第1页 / 共71页
《面向对象编程基础》PPT课件.ppt_第2页
第2页 / 共71页
点击查看更多>>
资源描述

《《面向对象编程基础》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《面向对象编程基础》PPT课件.ppt(71页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第5章 面向对象编程基础n n本章要点:对象及对象句柄 类 构造器、方法 访问控制符 静态关键字 重载 包 注释及添加文档5.1 对象对象n n5.1.1 什么是对象有有3 3个主要的特征:个主要的特征:对象的行为(对象的行为(behaviorbehavior)这个对象能做什么,也这个对象能做什么,也就是我们可以让这个对象完成什么样的功能。比如自行就是我们可以让这个对象完成什么样的功能。比如自行车可以载我们去想去的地方,节省体力。车可以载我们去想去的地方,节省体力。对象的状态(对象的状态(statestate)当通过一个操纵对象的方法当通过一个操纵对象的方法时,对象所保持的一种包含特定属性的状

2、态。比如我们时,对象所保持的一种包含特定属性的状态。比如我们可以通过扭转车头使自行车拐弯;刹车时,可以让自行可以通过扭转车头使自行车拐弯;刹车时,可以让自行车减速或停下来。车减速或停下来。对象的标识符(对象的标识符(identityidentity)可以通过标识符,区可以通过标识符,区别具有相同行为或类似状态的对象。说到自行车,可以别具有相同行为或类似状态的对象。说到自行车,可以有很多种样子的,很多生产厂家的,都可以说是自行车,有很多种样子的,很多生产厂家的,都可以说是自行车,那如何能区分我使用的这一辆呢?可以根据颜色、生产那如何能区分我使用的这一辆呢?可以根据颜色、生产厂家及自行车号牌等与其

3、他的自行车区分。厂家及自行车号牌等与其他的自行车区分。n n5.1.2 对象句柄变量名是内存地址(栈)的一个别名,对于基变量名是内存地址(栈)的一个别名,对于基本类型来讲,它的值就是存放在这个内存地址的本类型来讲,它的值就是存放在这个内存地址的空间内,对于对象类型来讲,它的值是一个指向空间内,对于对象类型来讲,它的值是一个指向实际对象的一个地址(堆),而真正的对象是存实际对象的一个地址(堆),而真正的对象是存放于堆中,我们就可以理解为:这就是一个对象放于堆中,我们就可以理解为:这就是一个对象的句柄。的句柄。我们可以想像一下我们是如何用遥控器(对象我们可以想像一下我们是如何用遥控器(对象句柄)操

4、纵电视机(对象)的。只要你拥有这个句柄)操纵电视机(对象)的。只要你拥有这个遥控器,你就可以操纵电视机,一旦需要遥控器,你就可以操纵电视机,一旦需要“换频换频道道”或或“增大声音增大声音”,你操纵的是遥控器(句柄),你操纵的是遥控器(句柄),由遥控器去操纵电视机(对象),你也可以将,由遥控器去操纵电视机(对象),你也可以将这个遥控器交给其他的人(按址传递),别人也这个遥控器交给其他的人(按址传递),别人也就有操纵这个对象的权力了,无论有多少个人来就有操纵这个对象的权力了,无论有多少个人来操纵遥控器,电视机始终是唯一的(对象只有一操纵遥控器,电视机始终是唯一的(对象只有一个)。个)。此外,即使没

5、有电视机,你仍然可以拥有遥控此外,即使没有电视机,你仍然可以拥有遥控器,也就是说,你可以只有句柄,没有实际性的器,也就是说,你可以只有句柄,没有实际性的对象(电视机)与句柄(遥控器)相关联。例如:对象(电视机)与句柄(遥控器)相关联。例如:String str;String str;这里只是拥有了一个对象句柄,句柄(这里只是拥有了一个对象句柄,句柄(strstr)并)并没有与任何对象内容相关联。这时,你去操纵句没有与任何对象内容相关联。这时,你去操纵句柄(柄(strstr),并向它发送一条消息(操作),系统),并向它发送一条消息(操作),系统会提示你错误。所以我们建议读者在创建对象句会提示你错

6、误。所以我们建议读者在创建对象句柄时,一定不要忘记将句柄与实际的对象内容相柄时,一定不要忘记将句柄与实际的对象内容相关联(也就是对象变量的初始化)。关联(也就是对象变量的初始化)。n n5.1.3 对象变量的初始化当创建一个对象句柄时,总是希望马上进行相当创建一个对象句柄时,总是希望马上进行相应的初始化工作,也就是将句柄与内容关联在一应的初始化工作,也就是将句柄与内容关联在一起。在起。在JavaJava中,这是一个非常简单的过程,它是通中,这是一个非常简单的过程,它是通过过newnew关键字来完成对象的创建过程的。可以理解关键字来完成对象的创建过程的。可以理解为为newnew就是新建的意思,它

7、就是向内存堆中申请一就是新建的意思,它就是向内存堆中申请一个空间,将这个对象内容放到这里,然后将内容个空间,将这个对象内容放到这里,然后将内容与对象句柄(存在于栈中)关联起来。是谁起到与对象句柄(存在于栈中)关联起来。是谁起到的作用呢?那就是等号(的作用呢?那就是等号(“=”“=”),例如:),例如:String str=new String(Hello);String str=new String(Hello);StringString是是JavaJava中用到最多的字符串对象,它生成中用到最多的字符串对象,它生成一个具体的内容一个具体的内容“Hello”“Hello”,我们把这个过程称为,

8、我们把这个过程称为对象的实例化,并将这个实例与句柄(对象的实例化,并将这个实例与句柄(strstr)通过)通过等号关联在一起。等号关联在一起。5.2 类类n n5.2.1 类的含义类在类在JavaJava中用中用classclass关键字表示,在第关键字表示,在第3 3章中我们已经强章中我们已经强调过,要想声明一个类,必须使用调过,要想声明一个类,必须使用classclass关键字。关键字。类是对象的抽象,类是模板,类是一类事物经过抽象类是对象的抽象,类是模板,类是一类事物经过抽象所共有属性的集合。所共有属性的集合。比如说我们现在声明一个汽车类:比如说我们现在声明一个汽车类:public cl

9、ass Carpublic class Car 接着进行一个类的实例化,也就是说创建一个类的实例:接着进行一个类的实例化,也就是说创建一个类的实例:new Car();/new Car();/这样就产生了一个类的实例,也就是一个这样就产生了一个类的实例,也就是一个具体的对象具体的对象一个类的实例是针对一个具体的对象的,它是一些具一个类的实例是针对一个具体的对象的,它是一些具体属性的集合。体属性的集合。n n5.2.2 设计自己的类1.需求分析(1)对于一个学生类(Student class),作为整个系统的最核心的类,我们希望它能包括学生公有的基本信息:学生姓名、学号、性别、出生年月、专业和籍

10、贯等。(2)作为学生类的实例,我们希望能通过设置或访问来修改这些学生的不同信息。2.2.编写代码编写代码例例5-15-1程序清单:程序清单:/*/*学生类,包括学生的基本信息学生类,包括学生的基本信息*/*/public class StudentTestpublic class StudentTest public static void main(String args)public static void main(String args)Student tom=new Student(Tom,20020410);Student tom=new Student(Tom,20020410)

11、;tom.setStudentSex(man);tom.setStudentSex(man);tom.setStudentAddress(America);tom.setStudentAddress(America);System.out.println(tom.toString();System.out.println(tom.toString();class Studentclass Student private String strName=;/private String strName=;/学生姓名学生姓名private String strNumber=;/private Str

12、ing strNumber=;/学号学号private String strSex=;/private String strSex=;/性别性别private String strBirthday=;/private String strBirthday=;/出生年月出生年月private String strSpeciality=;/private String strSpeciality=;/专业专业private String strAddress=;/private String strAddress=;/地址地址 public String toString()public Stri

13、ng toString()String information=String information=学生姓名学生姓名=+strName+,=+strName+,学号学号=+strNumber;=+strNumber;if(!strSex.equals()if(!strSex.equals()information+=,information+=,性别性别=+strSex;=+strSex;if(!strBirthday.equals()if(!strBirthday.equals()information+=,information+=,出生年月出生年月=+strBirthday;=+str

14、Birthday;if(!strSpeciality.equals()if(!strSpeciality.equals()information+=,information+=,专业专业=+strSpeciality;=+strSpeciality;if(!strAddress.equals()if(!strAddress.equals()information+=,information+=,籍贯籍贯=+strAddress;=+strAddress;return information;return information;n n5.2.3 分析你的类1.1.构造器构造器通过关键字通过关键

15、字newnew来生成对象的实例,是通过构来生成对象的实例,是通过构造器(造器(constructorconstructor)来实现的。那究竟什么是构造)来实现的。那究竟什么是构造器呢?简单的说,构造器是同类名相同的特殊方器呢?简单的说,构造器是同类名相同的特殊方法。让我们研究一下学生类的构造器:法。让我们研究一下学生类的构造器:public Student(String name,String number)public Student(String name,String number)strName=name;strName=name;strNumber=number;strNumber=

16、number;当构造一个学生类的实例时,学生类的构造器当构造一个学生类的实例时,学生类的构造器就被启动,它给实例字段赋值。就被启动,它给实例字段赋值。2.2.方法方法提到方法(提到方法(methodmethod)都是针对于某一个类的,也就是)都是针对于某一个类的,也就是说方法都是类中的程序段。方法究竟是做什么用的呢?在说方法都是类中的程序段。方法究竟是做什么用的呢?在探讨方法之前我们有必要先探讨一下另外一个概念探讨方法之前我们有必要先探讨一下另外一个概念封封装。装。封装:封装:所谓封装,就是把数据和行为结合在一个块中,对于所谓封装,就是把数据和行为结合在一个块中,对于对象的使用者隐藏了数据的实

17、现过程,对象的使用者只能对象的使用者隐藏了数据的实现过程,对象的使用者只能通过特定的方法访问类的实例字段。一个特定的对象是类通过特定的方法访问类的实例字段。一个特定的对象是类的一个实例,一个对象实例中的数据叫做对象的实例字段,的一个实例,一个对象实例中的数据叫做对象的实例字段,操作实例字段的函数和过程称为方法。这个实例保持属于操作实例字段的函数和过程称为方法。这个实例保持属于它本身的特定的值,这些值被称为对象的当前状态,任何它本身的特定的值,这些值被称为对象的当前状态,任何想改变对象当前状态的动作必须通过调用对象的方法。对想改变对象当前状态的动作必须通过调用对象的方法。对于封装,我们重点强调的

18、是,绝对不允许方法直接访问除于封装,我们重点强调的是,绝对不允许方法直接访问除它自己的实例字段以外的其他的实例字段。程序只能通过它自己的实例字段以外的其他的实例字段。程序只能通过对象的方法来与对象的数据发生作用。封装的实际作用就对象的方法来与对象的数据发生作用。封装的实际作用就是一个是一个“黑盒子黑盒子”的作用,对于使用者,只需要知道对象的作用,对于使用者,只需要知道对象的输出数据与输入数据,而不再去关心、也没必要关心数的输出数据与输入数据,而不再去关心、也没必要关心数据的内部具体实现流程。对于封装的详细解析我们在本书据的内部具体实现流程。对于封装的详细解析我们在本书后面有专门的介绍。后面有专

19、门的介绍。方法的定义:方法的定义:学生类中的方法都很简单,可以通过方法访问类的私学生类中的方法都很简单,可以通过方法访问类的私有实例字段,因为任何实例字段都可以被它们所在的类的有实例字段,因为任何实例字段都可以被它们所在的类的方法访问。方法访问。在一个类中,声明方法的格式如下:在一个类中,声明方法的格式如下:访问标识符访问标识符 返回值类型返回值类型 方法名(变量类型方法名(变量类型 变量名称,变量名称,)比如在刚才我们声明的学生类中,声明了比如在刚才我们声明的学生类中,声明了1111个方法,个方法,我们就以籍贯为例来分析一下方法的实质。我们就以籍贯为例来分析一下方法的实质。public St

20、ring getStudentAddress()public String getStudentAddress()return strAddress;return strAddress;public void setStudentAddress(String address)public void setStudentAddress(String address)strAddress=address;strAddress=address;设置器和访问器设置器和访问器在在Java APIJava API文档中,我们经常可以发现类似于上面学生类中的很多以文档中,我们经常可以发现类似于上面学生类中的

21、很多以getget或或setset开头的方法。开头的方法。getget方法只是查看对象的状态,并没有改变对象的任何状态,例如:方法只是查看对象的状态,并没有改变对象的任何状态,例如:public String getStudentName()public String getStudentName()return strName;return strName;public String getStudentNumber()public String getStudentNumber()return strNumber;return strNumber;public String getStud

22、entSex()public String getStudentSex()return strSex;return strSex;public String getStudentBirthday()public String getStudentBirthday()return strBirthday;return strBirthday;3.使用多个源文件(1)通过统配符来调用编译器javac Student*.java 或javac*.java这时,与统配符相匹配的所有源文件都会被编译成类文件。(2)编译主文件也可以采用如下的方式编译主文件:4.4.访问控制符访问控制符我们在前面几章中,经

23、常看到在类、方法、实我们在前面几章中,经常看到在类、方法、实例字段前有例字段前有publicpublic、privateprivate等,这就是访问控制符。等,这就是访问控制符。所谓访问控制符,就是控制某个类、方法、实所谓访问控制符,就是控制某个类、方法、实例字段被外界所能看到或访问到的范围。在例字段被外界所能看到或访问到的范围。在JavaJava中中访问控制符主要有访问控制符主要有3 3个:个:public public(“公开公开”)、)、privateprivate(“私有私有”)和)和protectedprotected(“受保护受保护”)。在这)。在这里,我们重点探讨前两个,对于里,

24、我们重点探讨前两个,对于portectedportected等到后等到后面的章节再探讨。面的章节再探讨。publicpublic:当使用关键字当使用关键字publicpublic时,就意味着在它后面的时,就意味着在它后面的内容被声明为适用于所有人使用。在所有的访问内容被声明为适用于所有人使用。在所有的访问控制符中,控制符中,publicpublic的访问权限最大,那它究竟是如的访问权限最大,那它究竟是如何被访问的,我们先不做探讨,只有把它同其他何被访问的,我们先不做探讨,只有把它同其他控制符进行比较,我们才能真正体会到它的意义。控制符进行比较,我们才能真正体会到它的意义。privatepriv

25、ate:关键字关键字privateprivate是访问控制符中被访问范围最小是访问控制符中被访问范围最小的控制符,它是私有的。它意味着,除非是个特的控制符,它是私有的。它意味着,除非是个特定的类,并且只有从这个类的方法里才能访问到定的类,并且只有从这个类的方法里才能访问到的,否则没有人能访问这个成员。比如在我们的的,否则没有人能访问这个成员。比如在我们的学生类中:学生类中:private String strName=;/private String strName=;/学生姓名学生姓名private String strNumber=;/private String strNumber=;/

26、学号学号private String strSex=;/private String strSex=;/性别性别private String strBirthday=;/private String strBirthday=;/出生年月出生年月private String strSpeciality=;/private String strSpeciality=;/专业专业private String strAddress=;/private String strAddress=;/地址地址例例5-25-2程序清单:程序清单:/*/*学生类,包括学生的基本信息学生类,包括学生的基本信息*/*/

27、public class StudentTest1public class StudentTest1 public static void main(String args)public static void main(String args)Student1 tom=new Student1(Tom,20020410);Student1 tom=new Student1(Tom,20020410);Student2 jack=new Student2(Jack,20030911);Student2 jack=new Student2(Jack,20030911);System.out.pr

28、intln(tom.toString();System.out.println(tom.toString();System.out.println(jack.toString();System.out.println(jack.toString();System.out.println(System.out.println(通过公开字段,修改实例字段值。通过公开字段,修改实例字段值。););/tom.strName=/tom.strName=唐僧唐僧;jack.strName=jack.strName=孙悟空孙悟空;System.out.println(jack.toString();Syst

29、em.out.println(jack.toString();class Student1class Student1 private String strName=;/private String strName=;/学生姓名学生姓名 private String strNumber=;/private String strNumber=;/学号学号 public Student1(String name,String number)public Student1(String name,String number)strName=name;strName=name;strNumber=nu

30、mber;strNumber=number;public String getStudentName()public String getStudentName()return strName;return strName;public String getStudentNumber()public String getStudentNumber()return strNumber;return strNumber;public String toString()public String toString()return return 学生姓名学生姓名=+strName+,=+strName

31、+,学号学号=+strNumber;=+strNumber;class Student2class Student2 public String strName=;/public String strName=;/学生姓名学生姓名 public String strNumber=;/public String strNumber=;/学号学号 public Student2(String name,String number)public Student2(String name,String number)strName=name;strName=name;strNumber=number;

32、strNumber=number;public String getStudentName()public String getStudentName()return strName;return strName;public String getStudentNumber()public String getStudentNumber()return strNumber;return strNumber;public String toString()public String toString()return return 学生姓名学生姓名=+strName+,=+strName+,学号学

33、号=+strNumber;=+strNumber;方法的私有性方法的私有性在设计一个类时,我们会使所有的实例字段都在设计一个类时,我们会使所有的实例字段都是私有的,因为通过上面的程序示例,读者可以是私有的,因为通过上面的程序示例,读者可以看出公开的数据是危险的。看出公开的数据是危险的。数据是这样的,那么对于方法呢?虽然在大多数据是这样的,那么对于方法呢?虽然在大多数的情况下,方法都是公开的,但私有的方法也数的情况下,方法都是公开的,但私有的方法也是经常用到的。这些私有的方法只能被类中其他是经常用到的。这些私有的方法只能被类中其他的方法调用。既然私有方法只能被类内的方法使的方法调用。既然私有方法

34、只能被类内的方法使用,为什么还要有私有方法呢?用,为什么还要有私有方法呢?原因很简单,为了实现逻辑的分离。原因很简单,为了实现逻辑的分离。对于某些方法,我们有时需要进行复杂逻辑的对于某些方法,我们有时需要进行复杂逻辑的分离,这种分离出来的逻辑只是对某个特定的方分离,这种分离出来的逻辑只是对某个特定的方法有用,或者说对于类的使用者来说是没有意义法有用,或者说对于类的使用者来说是没有意义的,在这种情况下,我们一般将方法声明为私有的,在这种情况下,我们一般将方法声明为私有的。的。5.5.静态字段与方法静态字段与方法在我们所列举的示例中,可以看到在我们所列举的示例中,可以看到mainmain方法都方法

35、都被标记上被标记上staticstatic标识符。下面我就对标识符。下面我就对staticstatic关键字进关键字进行深入探讨。行深入探讨。静态字段静态字段如果在一个类中,把一个字段声明为如果在一个类中,把一个字段声明为staticstatic(静(静态的),那么在这个类中只能有这么一个类字段,态的),那么在这个类中只能有这么一个类字段,而每个实例都共享同一个字段。而每个实例都共享同一个字段。我们用示例来说明这个问题,比如,每个学生我们用示例来说明这个问题,比如,每个学生都有唯一的一个学号字段,这个学号字段不再需都有唯一的一个学号字段,这个学号字段不再需要人工输入,而是由程序自动计算的。我们

36、追加要人工输入,而是由程序自动计算的。我们追加一个静态字段一个静态字段nextNumbernextNumber:例例5-35-3程序清单:程序清单:/*/*学生类,包括学生的基本信息学生类,包括学生的基本信息*静态字段的测试静态字段的测试*/*/public class StudentTest2public class StudentTest2 public static void main(String args)public static void main(String args)int i;int i;for(i=0;i 10;i+)for(i=0;i 10;i+)Student to

37、m=new Student(Tom+i);Student tom=new Student(Tom+i);if(i%2=0)if(i%2=0)tom.setStudentSex(man);tom.setStudentSex(man);else else tom.setStudentSex(female);tom.setStudentSex(female);tom.setStudentAddress(America);tom.setStudentAddress(America);tom.setStudentNumber();tom.setStudentNumber();System.out.pri

38、ntln(tom.toString();System.out.println(tom.toString();public String toString()public String toString()String information=String information=学生姓名学生姓名=+strName+,=+strName+,学号学号=+number;=+number;if(!strSex.equals()if(!strSex.equals()information+=,information+=,性别性别=+strSex;=+strSex;if(!strBirthday.equa

39、ls()if(!strBirthday.equals()information+=,information+=,出生年月出生年月=+strBirthday;=+strBirthday;if(!strSpeciality.equals()if(!strSpeciality.equals()information+=,information+=,专业专业=+strSpeciality;=+strSpeciality;if(!strAddress.equals()if(!strAddress.equals()information+=,information+=,籍贯籍贯=+strAddress;=

40、+strAddress;return information;return information;静态常量静态常量类似于我们上面的定义的静态变量是不经常使用的。类似于我们上面的定义的静态变量是不经常使用的。然而,静态常量却是很普遍的,例如我们经常使用的。它然而,静态常量却是很普遍的,例如我们经常使用的。它在在SystemSystem类中被声明为:类中被声明为:public class Systempublic class System public static final PrintStream out=;public static final PrintStream out=;outou

41、t静态字段被声明为公开的,如果去掉静态字段被声明为公开的,如果去掉staticstatic这个关键这个关键字,字,outout就是类的实例字段。我们在访问控制符中强调过,就是类的实例字段。我们在访问控制符中强调过,将类中实例字段公开是一个不好的主意,因为每个人都可将类中实例字段公开是一个不好的主意,因为每个人都可以修改公开的类实例字段,但是使用公开常量(以修改公开的类实例字段,但是使用公开常量(finalfinal字段)字段)却没有问题。因为却没有问题。因为outout被声明为被声明为finalfinal是不可被更改的。是不可被更改的。静态方法静态方法mainmain方法就是一个静态方法,一个

42、方法想变成静态方法,方法就是一个静态方法,一个方法想变成静态方法,只要在前面加上只要在前面加上staticstatic就可以了。静态方法可以说是一类特殊的就可以了。静态方法可以说是一类特殊的方法,它并不操纵具体的对象,它同静态字段是类似的,是属方法,它并不操纵具体的对象,它同静态字段是类似的,是属于类的方法。于类的方法。因为静态方法不操纵具体的对象,所以在一个静态方法中因为静态方法不操纵具体的对象,所以在一个静态方法中不能访问类的实例字段,但可以访问一个自己类中的静态字段。不能访问类的实例字段,但可以访问一个自己类中的静态字段。例例5-45-4程序清单:程序清单:/*/*静态方法访问实例字段及

43、静态字段静态方法访问实例字段及静态字段*/*/public class StaticMethodpublic class StaticMethod int a=15;int a=15;int b=2;int b=2;public static void main(String args)public static void main(String args)System.out.println(a+/+b+=+(a/b);System.out.println(a+/+b+=+(a/b);静态方法的使用对于方法的使用,在前面已经有所讲述。对于静态方法的调用则是一种特殊的情况,它的使用是通过类名直

44、接调用方法名。格式如下:类名.方法名(参数列);在下面我们将会学习Java中两个重要的类:Math类与Date类,会多次用到静态方法的调用。请读者深入体会。工厂方法工厂方法这节我们接触这节我们接触JavaJava中一个非常重要的概念中一个非常重要的概念工厂方法。对于工厂我们通常的理解就是生产产工厂方法。对于工厂我们通常的理解就是生产产品的地方,这是非常正确的。对于品的地方,这是非常正确的。对于JavaJava程序设计来程序设计来说,首先工厂方法就是生产对象的地方,也就是说,首先工厂方法就是生产对象的地方,也就是生产类的实例的地方。其次,它还是一个方法,生产类的实例的地方。其次,它还是一个方法,

45、这个方法的目的就是生产对象。这个方法的目的就是生产对象。到目前为止,读者只要记住工厂方法是创造对到目前为止,读者只要记住工厂方法是创造对象的地方,通过工厂方法的调用可以得到一个类象的地方,通过工厂方法的调用可以得到一个类的实例。在以后的章节中我们会更加详细的探讨的实例。在以后的章节中我们会更加详细的探讨工厂方法。工厂方法。mainmain方法方法我们曾经多次接触到我们曾经多次接触到mainmain方法,方法,mainmain方法是一个静态方法是一个静态方法。通过前面的描述读者已经了解到静态方法不需要对方法。通过前面的描述读者已经了解到静态方法不需要对象去调用。实际上,当程序开始执行时,还不存在

46、任何对象去调用。实际上,当程序开始执行时,还不存在任何对象。静态方法象。静态方法mainmain执行后,开始创建所需要的对象。执行后,开始创建所需要的对象。例如:我们在学生类中追加一个例如:我们在学生类中追加一个mainmain方法。方法。class Studentclass Student public static void main(String args)public static void main(String args)Student aStudent=new Student(Student aStudent=new Student(沙和尚沙和尚););aStudent.setA

47、ddress(aStudent.setAddress(通天河通天河););例例5-55-5程序清单:程序清单:/*/*学生类,包括学生的基本信息学生类,包括学生的基本信息*/*/public class StudentTest3public class StudentTest3 public static void main(String args)public static void main(String args)Student tom=new Student(Tom,20020410);Student tom=new Student(Tom,20020410);tom.setStude

48、ntSex(man);tom.setStudentSex(man);tom.setStudentAddress(America);tom.setStudentAddress(America);System.out.println(tom.toString();System.out.println(tom.toString();class Studentclass Student private String strName=;/private String strName=;/学生姓名学生姓名private String strNumber=;/private String strNumber

49、=;/学号学号private String strSex=;/private String strSex=;/性别性别private String strBirthday=;/private String strBirthday=;/出生年月出生年月private String strSpeciality=;/private String strSpeciality=;/专业专业private String strAddress=;/private String strAddress=;/地址地址public String toString()public String toString()S

50、tring information=String information=学生姓名学生姓名=+strName+,=+strName+,学号学号=+strNumber;=+strNumber;if(!strSex.equals()if(!strSex.equals()information+=,information+=,性别性别=+strSex;=+strSex;if(!strBirthday.equals()if(!strBirthday.equals()information+=,information+=,出生年月出生年月=+strBirthday;=+strBirthday;if(!s

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 初中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁