自考Java程序设计一(第3章面向对象编程基础).pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《自考Java程序设计一(第3章面向对象编程基础).pdf》由会员分享,可在线阅读,更多相关《自考Java程序设计一(第3章面向对象编程基础).pdf(89页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Java 语言程序设计(一)串讲语言程序设计(一)串讲主讲人主讲人:周立民周立民更多优质自考资料尽在百度贴吧自考乐园俱乐部(http:/ 人人 物品物品 动物动物 ,植物,植物 面向对象编程基础面向对象编程基础对象的特征对象的特征属性属性属性对象具有的各种特征 每个对象的每个属性都拥有特定值例如:王小红和朱小雨的体重不一样 60kg 60kg王小红王小红王小红王小红属性属性 35岁岁 35岁岁收银员小王收银员小王 对象的特征对象的特征方法方法方法对象执行的操作 打单打单 打单打单 收银收银 收银收银 方法方法 刷卡刷卡 刷卡刷卡 收银员王小红收银员王小红封装封装对象同时具有属性和方法两项特性对
2、象的属性和方法通常被封装在一起,共同体现事物的特性,二者相辅相承,不能分割谁看见过只有谁看见过只有“完好完好的零件和颜色的零件和颜色”而不而不能开动的汽车?能开动的汽车?谁看见过只有谁看见过只有“完好完好的零件和颜色的零件和颜色”而不而不能开动的汽车?能开动的汽车?类:从对象抽取出类类:从对象抽取出类顾客类轿车类 类是模子,确定对象将会拥有的类是模子,确定对象将会拥有的特征(属性)和行为(方法)特征(属性)和行为(方法)类是对象的类型类是对象的类型不同于不同于int类型:具有方法类型:具有方法 各种口味的球状冰淇淋各种口味的球状冰淇淋 球状冰淇淋模子球状冰淇淋模子 球状冰淇淋模子球状冰淇淋模子
3、类和对象有什么区别呢?类和对象有什么区别呢?类是抽象的概念,仅仅是模板,比如说:“人”对象是一个你能够看得到、摸得着的具体实体,比如:“小布什”小布什小布什普京普京克林顿克林顿“人人”类类特征(属性)特征(属性)年龄年龄体重体重行为(方法)行为(方法)衣衣食食住住行行Java 是面向对象的语言是面向对象的语言 所有所有Java程序都以类程序都以类class为组织单元为组织单元关键字关键字class定义自定义的数据类型定义自定义的数据类型 public class HelloWorld public static void main(String args)System.out.println(
4、使用使用Java语言语言理解理解程序程序逻辑逻辑);Java类模板类模板类将现实世界中的概念模拟到计算机程序中public class 类名类名 /定定义义属性属性部分部分 属性属性1的类型的类型 属性属性1;属性属性2的类型的类型 属性属性2;属性属性n的类型的类型 属性属性n;/定定义义方法方法部分部分 方法方法1;方法方法2;方法方法m;定义类定义类定义一个类的步骤1、定义类名2、编写类的属性3、编写类的方法常见错误常见错误public class.Book String bookName;String authorName;int pageNum;boolean isAvailable
5、;类类命命名名规则规则:1、不能不能使用使用Java关键字关键字2、首字母可以、首字母可以为为字母字母,也可以也可以是是“_”或或“$”(建议建议不不要这样要这样)3、不能不能包含空格或包含空格或“.”号号类类命命名名规则规则:1、不能不能使用使用Java关键字关键字2、首字母可以、首字母可以为为字母字母,也可以也可以是是“_”或或“$”(建议建议不不要这样要这样)3、不能不能包含空格或包含空格或“.”号号代码错误代码错误代码错误代码错误如何创建和使用对象如何创建和使用对象使用对象的步骤:使用new创建类的一个对象使用对象:使用“.”进行以下操作给类的属性赋值:对象名.属性调用类的方法:对象名
6、.方法名()School center=new School();center.schoolName=“北北京京大学大学;/给给属性属性赋值赋值center.toString();/调用调用类的方法,类的方法,该该方法方法中中的的操作操作将将被执被执行行面向对象(面向对象(OO)的优点)的优点便于程序模拟现实世界中的实体用“类”表示实体的特征和行为隐藏细节对象的行为和属性被封装在类中,外界通过调用类的方法来获得,不需关注内部细节如何实现可重用可以通过类的模板,创建多个类的对象数据类型总结数据类型总结intdoublechar String使用使用class定定义义的类型的类型StudentTe
7、acherSchool基本数据基本数据类型类型基本数据基本数据类型类型引用数据引用数据类型类型引用数据引用数据类型类型数据类型使用区别数据类型使用区别数据数据类型类型特征特征声明声明使用使用基本数据类型基本数据类型没有方法没有方法int i=8;i+;引用数据类型引用数据类型具有方法具有方法Student stu=new Student();stu.age+;类的方法类的方法写出狮子对象的“跑”方法写出狮子对象的“叫”方法 电电动动玩玩具具狮狮子子属性:属性:颜色:颜色:黄黄色色行为:行为:跑跑叫叫按此按钮按此按钮,狮狮子开子开始跑始跑按此按钮按此按钮,狮狮子开子开始跑始跑如何定义类的方法如何
8、定义类的方法类的方法定义类的某种行为(或功能)方法的定方法的定义义 方法的名方法的名称称 方法的主方法的主体体 方法方法返回返回的的数据数据类型类型 定定义义类的方法类的方法public 返回值返回值类型类型 方法名方法名()/这里编写这里编写方法的主方法的主体体步骤步骤一:定一:定义义方方法名法名以及返回值以及返回值步骤步骤一:定一:定义义方方法名法名以及返回值以及返回值步骤二步骤二:编写编写方方法法体体步骤二步骤二:编写编写方方法法体体方法的命名方法的命名如何给方法起名字?必须以字母、_或开头可以包括数字,但不能以它开头遵循的命名规范通常方法名是一个动词,如果有两个以上单词组成,第一个单词
9、的首字母小写,其后单词首字母大写方法的返回值方法的返回值两种情况如果方法具有返回值,方法中必须使用关键字return返回该值,返回类型为该返回值的类型如果方法没有返回值,返回类型为voidpublic class Student String name=张三张三;public void getName()return name;返回返回类型类型要匹配要匹配返回返回类型类型要匹配要匹配return 表达式表达式;return 表达式表达式;编编译译错误错误编编译译错误错误常见错误常见错误public class School public static void main(String args
10、)return“北京大学!;返回返回类型是类型是void方法方法中中不能有不能有返回值返回值 返回返回类型是类型是void方法方法中中不能有不能有返回值返回值 常见错误常见错误public class Student public double getInfo()double weight=95.5;double height=1.69;return weight,height;方法方法至多至多可以返回可以返回一一个个值值,不能,不能返回返回多个多个值值方法方法至多至多可以返回可以返回一一个个值值,不能,不能返回返回多个多个值值方法调用方法调用方法是个“黑匣子”,完成某个特定的应用程序功能,并
11、返回结果方法调用:执行方法中包含的语句 对象名对象名.方法名()方法名();对象名对象名.方法名()方法名();方法调用小结方法调用小结方法之间允许相互调用,不需要知道方法的具体实现,提高了效率 情况情况举例举例1、类、类Student 的方法的方法a()调用调用Student类类的方法的方法b(),直接调用,直接调用public void a()b();/调用调用b()2、类、类Student的方法的方法a()调用类调用类Teacher的方法的方法b(),先创建类对象,然后使用,先创建类对象,然后使用“.”调用调用public void a()Teacher t=new Teacher();
12、t.b();/调用调用Teacher类的类的b()变量作用域变量作用域变量声明的位置决定变量作用域变量作用域确定可在程序中按变量名访问该变量的区域for(int i=0,a=0;i 4;i+)a+;System.out.println(a);a的的作用作用域仅在域仅在for循环循环中中 a的的作用作用域仅在域仅在for循环循环中中 代码错误代码错误代码错误代码错误变量作用域变量作用域变量变量1类型类型 变量变量1;变量变量2类型类型 变量变量2;变量变量3类型类型 变量变量3;public 返回返回类型类型 方法方法1()变量变量4类型类型 变量变量4;public 返回返回类型类型 方法方法
13、2()变量变量5类型类型 变量变量5;public class AutoLion AutoLion类的方法类的方法别别的类的方法的类的方法 谁能谁能使用这使用这些变量些变量?谁能谁能使用这使用这些变量些变量?方法方法1 方法方法2 成成员员变量变量局局部部变量变量局局部部变量变量面向对象的编程思维面向对象的编程思维ScoreCalc类 和 Test类public static void main(String args)Scanner input=new Scanner(System.in);System.out.print(请输入请输入Java成绩成绩:);int java=input.ne
14、xtInt();/*计计算并显示输出算并显示输出*/int total=java+c+db;double avg=total/3;System.out.print(总成绩总成绩:+total);System.out.print(n平均平均分分:+avg);一一次还次还可以可以接受接受,如果如果还还要要再再执执行行这这个功个功能,能,难道还难道还要重要重复再复再写写?一一次还次还可以可以接受接受,如果如果还还要要再再执执行行这这个功个功能,能,难道还难道还要重要重复再复再写写?calcDiffTimecalcTotalScore()ScoreCalcshowTotalScore()calcAvg
15、()showAvg()main()/程序程序入入口口 /计计算并输出总成绩算并输出总成绩 /计计算并输出平均算并输出平均分分 Test调用调用调用调用类的方法类的方法实现某个实现某个特定的特定的功功能,能,别别的类不的类不需需要要知道它如何实现!知道它如何实现!知道了实现知道了实现此此功功能的类和能的类和它它的方法名,的方法名,就就可以可以直接直接调用调用了了,不,不用重用重复复写代码写代码!什么是封装什么是封装public class Teacher2 private String name;/教教员员姓姓名名/返回返回教教员员姓姓名名public String getName()retur
16、n name;/设定设定教教员员姓姓名名public void setName(String name)this.name=name;封装,就是隐藏实现细节将属性私有化,提供公有方法访问私有属性通过这些公有方法访问私有属性 Teacher2 teacher=new Teacher2();teacher.setName(李芳李芳);String tName=teacher.getName();通通过过setter、getter方法方法访问访问name属性属性通通过过setter、getter方法方法访问访问name属性属性this代代表当前表当前类的类的实例实例this代代表当前表当前类的类的实
17、例实例29如何实现封装如何实现封装封装的实现:1、修改属性的可见性来限制对属性的访问2、为每个属性创建一对赋值(setter)方法和取值(getter)方法,用于对这些属性的访问3、在setter和getter方法中,加入对属性的存取限制public class Teacher3 private String name;/教教员员姓姓名名private int age;/年龄年龄public int getAge()return age;public void setAge(int age)if(age22)System.out.println(错误错误!最!最小小年龄年龄应应为为22岁岁!)
18、;this.age=22;/如果如果不不符合符合年龄要年龄要求求,则赋则赋予默认予默认值值 else this.age=age;/此此处省略处省略对对name属性的属性的setter、getter方法方法12330如何实现封装如何实现封装public class Teacher3Test public static void main(String args)AccpTeacher3 teacher=new AccpTeacher3();teacher.setName(李芳李芳);teacher.setAge(10);System.out.println(teacher.introductio
19、n();使用使用封装封装,增加了增加了数据数据访问限制访问限制,增强了增强了程序的程序的可可维护维护性性 使用使用封装封装,增加了增加了数据数据访问限制访问限制,增强了增强了程序的程序的可可维护维护性性 错误错误!最!最小小年龄年龄应应为为22岁岁!大大家家好好!我!我是是李芳李芳,我今我今年年22岁岁错误错误!最!最小小年龄年龄应应为为22岁岁!大大家家好好!我!我是是李芳李芳,我今我今年年22岁岁测试测试类类通通过过调用调用setter方法,为对象的各方法,为对象的各个个属性属性赋值赋值31什么是构造方法什么是构造方法构造方法负责对象成员的初始化工作,为实例变量赋予合适的初始值构造方法必须
20、满足以下语法规则:1、方法名与类名相同2、没有返回类型public class Teacher5 private String name;/教教员员姓姓名名/构造构造方法方法public Teacher5()name=无无名名氏氏;Public Teacher5Test public static void main(String args)Teacher5 teacher=new Teacher5();使用使用new关键字调用关键字调用构造构造方法方法32带参数的构造方法带参数的构造方法通过带参数的构造方法,显式地为实例变量赋予初始值 public class Teacher6 privat
21、e String name;/教教员员姓姓名名private int age;/年龄年龄private String education;/学学历历private String position;/职位职位/带参带参数数的的构造构造方法方法Public Teacher6(String pName,int pAge,String pEducation,String pPosition)name=pName;age=pAge;/可以可以增加增加对对age等等属性的属性的存取存取限制限制条条件件education=pEducation;position=pPosition;public String
22、 introduction()return 大大家家好好!我!我是是+name+,我今我今年年+age+岁,岁,学学历历+education+,目目前前职位职位是是+position;33带参数的构造方法带参数的构造方法通过调用带参数的构造方法,简化对象初始化的代码public class Teacher6Test public static void main(String args)Teacher6 teacher=new Teacher6(李芳李芳,23,本本科科,咨询师咨询师);System.out.println(teacher.introduction();创创建建对象对象时时,一
23、,一并并完完成了成了对象对象成成员的员的初初始始化工化工作作创创建建对象对象时时,一,一并并完完成了成了对象对象成成员的员的初初始始化工化工作作大大家家好好!我!我是是李芳李芳,我今我今年年23岁,岁,学学历历本本科科,目目前前职位职位是是咨询师咨询师大大家家好好!我!我是是李芳李芳,我今我今年年23岁,岁,学学历历本本科科,目目前前职位职位是是咨询师咨询师34生活中的方法重载生活中的方法重载类类类类方法方法方法方法方法方法参参数数方法方法参参数数方法方法实现实现方法方法实现实现司机司机 轿轿车车 巴士巴士 火火车车 驾驶驾驶驾驶驾驶启启动动、行行驶驶、等待乘客上等待乘客上车车、启启动动、行行
24、驶驶、到站停到站停车车、正点发正点发车车、行行驶驶、到站停到站停车车、如果如果用代码用代码实现实现,我我们们需需要三要三个个方法,方法,这这些些方法的方法名方法的方法名称称相相同,同,参参数数类型不同类型不同 如果如果用代码用代码实现实现,我我们们需需要三要三个个方法,方法,这这些些方法的方法名方法的方法名称称相相同,同,参参数数类型不同类型不同 35方法重载必须满足的条件方法重载必须满足的条件重载方法必须满足以下条件:方法名相同。方法的参数类型、个数、顺序至少有一项不相同。方法的返回类型可以不相同。方法的修饰符可以不相同。调用重载方法时,Java 使用参数的类型和数量决定实际调用重载方法的哪
25、个版本。36方法重载的代码示例方法重载的代码示例 1方法重载并不陌生java.io.PrintStream类的println方法能够打印数据并换行,根据数据类型的不同,有多种实现方式public class Test public static void main(String args)int i=0;char c=z;String str=hello;System.out.println(i);System.out.println(c);System.out.println(str);PrintStreamprintln(int)println(char)println(String)方法
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自考 Java 程序设计 面向 对象 编程 基础
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内