您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > JavaSE02_面向对象程序设计
应用程序设计应用程序设计新科海学校新科海学校本章学习目标1面向对象的分析和设计简介2类和对象3属性、方法和构造方法4对象的创建和使用5信息的封装和隐藏6JavaAPI应用程序设计应用程序设计新科海学校新科海学校软件开发流程软件工程开发模型—瀑布模型应用程序设计应用程序设计新科海学校新科海学校分析/设计/编码阶段分析阶段:分析并确定用户需求,用采用适当的模型规范地表述这一需求,形成分析模型,为要处理的现实世界中的事物建立抽象建模。设计阶段:确定系统如何实现所需的功能----采用适当的数据结构+控制逻辑,将分析模型细化。编码实现:选定一种适当的编程语言,编码实现上述的设计,并在开发过程中引入测试,完善整个解决方案。应用程序设计应用程序设计新科海学校新科海学校面向对象思想概述面向对象的编程思想力图使对计算机语言中对事物的的描述与现实世界中该事物的本来面目尽可能的一致。类(class)和对象(object)是面向对象方法的核心概念。类是对一类事物描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而也称实例(instance)。应用程序设计应用程序设计新科海学校新科海学校类和对象举例定义一个类声明并创建一个Person类的对象,并将之命名为a调用对象a的方法classPerson{intage;intgetAge(){returnage;}voidsetAge(inti){age=i;}}Persona=newPerson();a.setAge(36);应用程序设计应用程序设计新科海学校新科海学校声明类语法格式:举例:[modifiers]classclass_name{[attribute_declarations][constructor_declarations][method_declarations]}publicclassPerson{privateintage;publicvoidsetAge(inti){age=i;}}应用程序设计应用程序设计新科海学校新科海学校声明属性语法格式:举例:[modifiers]typeattr_name[=defaultValue];publicclassPerson{privateintage;publicStringname=“Lila”;}应用程序设计应用程序设计新科海学校新科海学校声明方法语法格式:举例:[modifiers]return_typename([argu_list]){[statements]}publicclassPerson{privateintage;publicintgetAge(){returnage;}publicvoidsetAge(inti){age=i;}}应用程序设计应用程序设计新科海学校新科海学校构造方法功能:创建其所属类型的一个新的对象。语法格式:举例:[modifiers]class_name([argu_list]){[statements]}publicclassPerson{privateStringname;privateintage;publicPerson(Stringn){name=n;}publicPerson(Stringn,inta){name=n;age=a;}}Java语言中,每个类都至少有一个构造方法;如果类的定义者没有显式定义任何构造方法,系统将自动提供一个缺省的构造方法:–缺省构造方法没有参数–缺省构造方法方法体为空Java类中,一旦类的定义者显式定义了一个或多个构造方法,系统将不再提供缺省的构造方法;类的定义:等价于:应用举例:publicclassPerson{privateintage;publicvoidsetAge(intw){age=w;}}publicclassPerson{privateintage;publicPerson(){}publicvoidsetAge(intw){age=w;}}publicclassTest{publicstaticvoidmain(Stringargs[]){Persond=newPerson();d.setAge(120);}}应用程序设计应用程序设计新科海学校新科海学校对象的创建和使用语法规则:¾使用new+构造方法创建一个新的对象;¾使用“对象名.对象成员”的方式访问对象成员(包括属性和方法);举例:publicclassTest{publicstaticvoidmain(String[]args){Persond=newPerson();d.setAge(42);System.out.println(本人年龄:+d.getAge());}}分析并编译、运行下面的源文件,体会类的定义、对象的创建、对象成员方法的调用、类的定义和应用程序在源文件结构上的不同;//源文件A.java//源文件Test.javapublicclassA{publicvoidm1(){System.out.println(hi);}}publicclassTest{publicstaticvoidmain(String[]args){Ahello=newA();hello.m1();}}源文件Person.javapublicclassPerson{publicStringname=无名氏;publicintage;publicvoidsetName(Stringn){name=n;}publicStringgetName(){returnname;}publicvoidsetAge(inta){age=a;}publicintgetAge(){returnage;}publicvoidsleep(){System.out.println(name+在睡觉,呼噜噜!);}}源文件TestObject.javapublicclassTestObject{publicstaticvoidmain(String[]args){Personp1=newPerson();Personp2=newPerson();p1.name=张三;p1.age=18;p2.setName(李四);p2.setAge(33);p1.sleep();p2.sleep();System.out.println(p1.getAge());System.out.println(p2.age);}}输出结果:张三在睡觉,呼噜噜!李四在睡觉,呼噜噜!1833使用者对类内部定义的数据(对象的成员变量)的直接操作会导致数据的错误、混乱或安全性问题。举例:classPerson{publicintage;}publicclassDirectAccess{publicstaticvoidmain(String[]args){Personb=newPerson();b.age=40;b.age=-3;System.out.println(b.age);}}中通过将数据封装、声明为私有的(private),再提供一个或多个公开的(public)方法实现对该属性的操作,以实现下述目的:¾隐藏一个类的实现细节;¾使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作;¾便于修改,增强代码的可维护性;{privateStringname;privateintage;publicPerson(Stringn){name=n;}publicStringgetName(){returnname;}publicvoidsetAge(inti){if(i=0&&i=120){age=i;}}publicintgetAge(){returnage;}}publicclassEncapsulation{publicstaticvoidmain(String[]args){Personb=newPerson(Tom);b.setAge(34);b.setAge(-3);System.out.println(b.getName()+--+b.getAge());}}系统类库的使用说明,由Sun公司提供,下载地址
本文标题:JavaSE02_面向对象程序设计
链接地址:https://www.777doc.com/doc-4810128 .html