教学课件第五章 面向对象基础.ppt

上传人:春哥&#****71; 文档编号:25375348 上传时间:2022-07-11 格式:PPT 页数:47 大小:577.50KB
返回 下载 相关 举报
教学课件第五章 面向对象基础.ppt_第1页
第1页 / 共47页
教学课件第五章 面向对象基础.ppt_第2页
第2页 / 共47页
点击查看更多>>
资源描述

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

1、PPT模板下载:/moban/ 行业PPT模板:/hangye/ 节日PPT模板:/jieri/ PPT素材下载:/sucai/PPT背景图片:/beijing/ PPT图表下载:/tubiao/ 优秀PPT下载:/xiazai/ PPT教程: /powerpoint/ Word教程: /word/ Excel教程:/excel/ 资料下载:/ziliao/ PPT课件下载:/kejian/ 范文下载:/fanwen/ 试卷下载:/shiti/ 教案下载:/jiaoan/ 字体下载:/ziti/ 教学课件第五章 面向对象基础Java语言程序设计语言程序设计第五章辽宁机电职业技术学院辽宁机电职业

2、技术学院Designed By Chiyong2008本章目标:本章目标:OOP基本思想基本思想1Java OOP语法基础语法基础 23 34 4Java的修饰符的修饰符 类的继承类的继承 辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong20085.1 OOP基本思想 v数据的处理是程序设计的核心。数据的处理是程序设计的核心。 v传统的面向过程的编程设计思路是这样的:传统的面向过程的编程设计思路是这样的:先设计一组函数用来解决一个问题,然后再确定函数中先设计一组函数用来解决一个问题,然后再确定函数中相应需要处理的数据的存储位置,即相应需要处理的数据的存储位置,即“

3、算法数据结构算法数据结构程序程序”。v而面向对象编程(而面向对象编程(OOPOOP:Object Oriented ProgrammingObject Oriented Programming)的的思路恰好相反,是先确定要处理的数据,然后再设计处理数据思路恰好相反,是先确定要处理的数据,然后再设计处理数据的算法,最后将数据和算法封装在一起,构成类与对象。的算法,最后将数据和算法封装在一起,构成类与对象。vOO OO 设计方式有很多优点:设计方式有很多优点: (1)(1)更接近人们对客观世界事物的认识更接近人们对客观世界事物的认识 (2)(2)对数据和算法的封装更有利于数据安全对数据和算法的封装

4、更有利于数据安全 (3)(3)使程序设计更简单,更易于维护使程序设计更简单,更易于维护 辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008使用面向对象的思想来设计程序 例5-1:用面向过程的C语言实现两数相加 例5-2:用带过程化的面向对象C+语言实现 例5-3:用纯面向对象Java语言实现 三个例程的结果相同,都是:7 11辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008例5-1:用面向过程的C语言实现两数相加#include int sum(int x,int y) return x+y; ; void main()

5、 int a=3,b=4,c=5,d=6; printf(a+b=%dn,sum(a,b); printf(c+d=%dn,sum(c,d); 辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008 例5-2:用带过程化的面向对象C+实现#include class Calculate public: int sum(int x,int y) return x+y; ; void main() int a=3,b=4,c=5,d=6; Calculate obj; coutobj.sum(a,b)endl; coutobj.sum(c,d)endl; 辽宁机电职

6、业技术学院辽宁机电职业技术学院Designed By Chiyong2008例例5-3:用纯面向对象:用纯面向对象Java语言实现语言实现 class Calculate int sum(int x,int y)return x+y;public static void main(String args) Calculate obj=new Calculate(); int a=3,b=4,c=5,d=6; System.out.println(obj.sum(a,b); System.out.println(obj.sum(c,d); 辽宁机电职业技术学院辽宁机电职业技术学院Designed

7、 By Chiyong20085.1.2 类与对象 v类类和和对象对象是是OOP中最基本的两个概念,其实它们是中最基本的两个概念,其实它们是比较好理解的,简而言之,类是对象的模板,对象比较好理解的,简而言之,类是对象的模板,对象是类的具体实现是类的具体实现.v实例化是将类的属性设定为确定值的过程,是实例化是将类的属性设定为确定值的过程,是“一一般般”到到“具体具体”的过程;的过程;v抽象是从特定的实例中抽取共同的性质以形成一般抽象是从特定的实例中抽取共同的性质以形成一般化概念的过程,是化概念的过程,是“具体具体”到到“一般一般”的过程。的过程。v关于关于“类类”:类是具有共同属性和行为的对象的

8、抽象类是具有共同属性和行为的对象的抽象类可以定义为数据和方法的集合类可以定义为数据和方法的集合类也称为模板,因为它们提供了对象的基本框架类也称为模板,因为它们提供了对象的基本框架类是对象的类型,在语句中相当于数据类型使用类是对象的类型,在语句中相当于数据类型使用v关于关于“对象对象” ,具有两方面的含义:,具有两方面的含义: 在现实世界中:是客观世界中的一个实体在现实世界中:是客观世界中的一个实体在计算机世界中:是一个可标识的存储区域对象相当于变在计算机世界中:是一个可标识的存储区域对象相当于变量量 辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong20085.1.

9、3 OOP基本特性 1封装封装 Encapsulation 3多态多态Polymophism 2继承继承 Inheritance辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008 1. 封装(Encapsulation) v把类中的一些描述细节隐藏内部,用户只能通过接口来把类中的一些描述细节隐藏内部,用户只能通过接口来访问类中的内容,这种组织模块的方式称为访问类中的内容,这种组织模块的方式称为“封装封装”。v封装是一种信息隐藏的技术,用户在访问对象的时候,封装是一种信息隐藏的技术,用户在访问对象的时候,只能看到对象表面上的东西,它们是留给用户访问对象只能看到

10、对象表面上的东西,它们是留给用户访问对象的接口(简称的接口(简称API:Application Program Interface),),而内部的信息,外界用户是不能直接访问的,这就保证而内部的信息,外界用户是不能直接访问的,这就保证了类中数据不会被意外篡改。(实例演示)了类中数据不会被意外篡改。(实例演示)用户用户类类属性属性(私有区)(私有区)API方法(公有区)方法(公有区)辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008 2. 继承(Inheritance) v 为了代码复用,为了代码复用,OOP语言允许一个类(子类)使用另一语言允许一个类(子类)

11、使用另一个类(父类)的属性和方法,这种子类使用父类属性和方法个类(父类)的属性和方法,这种子类使用父类属性和方法的特性称为的特性称为“继承继承”。反之则称为。反之则称为“派生派生”。 例如:公司的雇员(例如:公司的雇员(Employee)派生为销售员()派生为销售员(Saler)和部门经)和部门经理(理(Manager)两类,销售经理()两类,销售经理(Sale_Manager)又继承了销售)又继承了销售员和经理两个类的共同特征。如图员和经理两个类的共同特征。如图1所示所示:v 继承方式可以分为单继承和多继承(又称多重继承)继承方式可以分为单继承和多继承(又称多重继承) 如果一个子类只继承自一

12、个直接父类,就称为单继承。单继承又可如果一个子类只继承自一个直接父类,就称为单继承。单继承又可以分为:单层继承和多层继承以分为:单层继承和多层继承 如果一个子类同时继承自多个父类,就称为多继承。如果一个子类同时继承自多个父类,就称为多继承。 v Animal类就是类就是Mammal类的直接基类,是类的直接基类,是Tiger类的间接类的间接基类(基类(Java中都可称为中都可称为“超类超类”););v Tiger类是类是Mammal类的直接子类,是类的直接子类,是Animal类的间接子类的间接子类。如图类。如图2所示所示:辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyo

13、ng2008如图1所示:EmployeeSalerManagerSale_Manager(箭头方向表示被继承的父类)(箭头方向表示被继承的父类)辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008如图2所示:AnimalMammalTiger (箭头方向表示被派生自哪个父类)(箭头方向表示被派生自哪个父类)辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008 3. 多态(Polymophism) v “多态多态” (Polymophism)在编程上,简单讲就是)在编程上,简单讲就是“类的不同对类的不同对象可以对同一个消息作出不

14、同的响应象可以对同一个消息作出不同的响应”。比如。比如H2O在不同温度下可在不同温度下可能是固态、液态或者气态。能是固态、液态或者气态。v 对象之间通过发送消息来传递信息,那么消息中应该包含三个方面对象之间通过发送消息来传递信息,那么消息中应该包含三个方面的信息:的信息:1) 要接收消息的对象要接收消息的对象2) 接收对象应操作的方法接收对象应操作的方法3) 方法中需要的参数方法中需要的参数v 那么为什么编程语言要引入多态呢?多态有什么具体作用呢?那么为什么编程语言要引入多态呢?多态有什么具体作用呢?多态更多的是从程序整体设计的高度上体现的一种技术,简单多态更多的是从程序整体设计的高度上体现的

15、一种技术,简单地说就是地说就是“会使程序设计和运行时更灵活会使程序设计和运行时更灵活”。对象封装了多个方法,。对象封装了多个方法,这些方法调用形式类似,但功能不同,对于使用者来说,不必去关这些方法调用形式类似,但功能不同,对于使用者来说,不必去关心这些方法功能设计上的区别,对象会自动按需选择执行,这不仅心这些方法功能设计上的区别,对象会自动按需选择执行,这不仅减少了程序中所需的标识符的个数,对于软件工程整体的简化设计减少了程序中所需的标识符的个数,对于软件工程整体的简化设计也有重大的意义。(实例演示)也有重大的意义。(实例演示)v 多态分为两种:静态多态和动态多态。多态分为两种:静态多态和动态

16、多态。静态多态是编译时多态,比如方法重载;静态多态是编译时多态,比如方法重载;动态多态是运行时多态,典型的是方法重写和接口的引用,动态多态是运行时多态,典型的是方法重写和接口的引用,辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008消息的作用如图所示:属性属性属性属性接收消息对象接收消息对象发送消息对象发送消息对象消息消息方法方法方法方法辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong20085.2 Java OOP语法基础 v类的定义Java中类定义的一般格式为:下面,举例说明类的定义方法:例5-4: 定义一个描述圆的类,并能

17、根据给定的半径计算和显示圆的面积。 类修饰符类修饰符 class extends implements static /静态块静态块成员修饰符成员修饰符 数据类型数据类型 成员变量成员变量1;成员修饰符成员修饰符 数据类型数据类型 成员变量成员变量2; /其它成员变量其它成员变量成员修饰符成员修饰符 返回值类型返回值类型 成员方法成员方法1(参数列表)(参数列表) 成员修饰符成员修饰符 返回值类型返回值类型 成员方法成员方法2(参数列表)(参数列表) /其它成员方法其它成员方法类声类声明明类体类体辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008例例5-4:

18、 定义一个描述圆的类面积。定义一个描述圆的类面积。 public class Circle /类开始 private float fRadius; /成员变量 final float PI=3.14f; /定义常变量PI void setRadius(float fR) /设置圆半径 fRadius=fR; void showArea() /显示圆面积 System.out.println(The area of circle is +fRadius*fRadius*PI); public static void main(String args) /主方法,即程序入口 Circle circ

19、le=new Circle(); /创建圆类的对象 circle.setRadius(5); /引用对象方法,设置圆半径 circle.showArea(); /引用对象方法,显示圆面积 【运行结果】 The area of circle is 78.5 辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong20085.2.2 Java的纯面向对象特性的纯面向对象特性v 除成员变量,成员方法和静态块(除成员变量,成员方法和静态块(static block)之外,类模块中不含有任何其它组成部分,除声之外,类模块中不含有任何其它组成部分,除声明或初始化语句之外的所有语句应写

20、入方法体中;明或初始化语句之外的所有语句应写入方法体中;v 在在Java源程序代码中,除类模块之外,不包含源程序代码中,除类模块之外,不包含任何游离于类模块之外的成分,如文件级变量和任何游离于类模块之外的成分,如文件级变量和函数等;函数等;v因为因为Java具备纯面向对象的特性,因此需确定具备纯面向对象的特性,因此需确定下面的术语:下面的术语: “方法方法”与与“函数函数”的区别:的区别:“实例实例”与与“对象对象”的区别:的区别: 辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong20085.2.3 成员变量成员变量 成员变量的声明或定义完整格式:成员变量的声明或

21、定义完整格式: 成员访问修饰符成员访问修饰符 成员存储类型修饰符成员存储类型修饰符 数据类型数据类型 成员变量成员变量=初值初值; 格式说明:格式说明:(1)类的成员变量在使用前必须加以声明,除了声明变量的数据类型)类的成员变量在使用前必须加以声明,除了声明变量的数据类型之外,还需要说明变量的访问属性和存储方式。访问修饰符包括:之外,还需要说明变量的访问属性和存储方式。访问修饰符包括:public、protected、private和缺省(即不带访问修饰符)和缺省(即不带访问修饰符) ;存存储类型修饰符包括:储类型修饰符包括:static,final,volatile,transient ;

22、Java中允许为成员变量赋初值。中允许为成员变量赋初值。 (2)成员变量根据在内存中的存储方式和作用范围可以分为:类变量)成员变量根据在内存中的存储方式和作用范围可以分为:类变量和实例变量。和实例变量。 (3)访问成员变量格式)访问成员变量格式:对象对象. 成员变量成员变量, 如果考虑如果考虑static关键字关键字,那么那么访问格式可细化为访问格式可细化为:对象对象. 静态成员变量(或实例成员变量静态成员变量(或实例成员变量)或或:类名类名. 静态成员变量静态成员变量因此点操作符(因此点操作符(.)也称为)也称为“对象成员操作符对象成员操作符”。 例例5-5: 成员的变量成员的变量辽宁机电职

23、业技术学院辽宁机电职业技术学院Designed By Chiyong2008例例5-5: 成员的变量成员的变量public class Circle /类开始类开始 private float fRadius; /成员变量成员变量 void showRadius() /显示半显示半 /int fRadius; /局部变量必须初始化局部变量必须初始化 System.out.println(The Radius of circle is +fRadius); /输出半径值输出半径值 public static void main(Stringargs)/主方法,即程序入口主方法,即程序入口 Cir

24、cle circle=new Circle();/创建圆类的对象创建圆类的对象 circle.showRadius();/引用对象方法,显示圆半径引用对象方法,显示圆半径 【运行结果运行结果】 The Radius of circle is 0.0 如果去掉代码第如果去掉代码第6行注释,运行结果为:行注释,运行结果为: variable fRadius might not have been initialized(提示变量(提示变量fRadius尚未初始尚未初始化)化) 辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong20085.2.4 成员方法 (1-1)v成

25、员方法的声明完整格式: 成员访问修饰符 成员存储类型修饰符 数据类型 成员方法(参数列表)throws Exception ;v成员方法定义的完整格式: 成员访问修饰符 成员存储类型修饰符 数据类型 成员方法(参数列表)throws Exception ; 方法体语句; 辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong20085.2.4 成员方法 (1-2)格式说明:格式说明: (1)类的成员方法的声明或定义前,除了声明方法的返回值数据类型之外,)类的成员方法的声明或定义前,除了声明方法的返回值数据类型之外,还需要说明方法的访问属性和存储方式。还需要说明方法的访问

26、属性和存储方式。 访问修饰符包括:访问修饰符包括:public、protected、private和缺省;和缺省; 存储类型修饰符包括:存储类型修饰符包括:static,final,abstract,native,synchronized。 (2)注意,如果类体中一个方法只有声明,没有定义(即没有方法体),)注意,如果类体中一个方法只有声明,没有定义(即没有方法体),则此方法是的则此方法是的abstract的,且类体和方法体前都须加的,且类体和方法体前都须加abstract。(3)访问成员方法格式)访问成员方法格式:对象对象. 成员方法成员方法 ,如果考虑如果考虑static关键字,那么访问关

27、键字,那么访问格式可细化为:格式可细化为:对象对象. 静态成员方法(或实例成员方法)静态成员方法(或实例成员方法)或:或:类名类名. 静态成员方法静态成员方法 (4)方法的返回值)方法的返回值 :方法按返回值可分为两类:无返回值的方法和有返回值方法按返回值可分为两类:无返回值的方法和有返回值的方法。的方法。 例例5-6:方法返回值的作用:方法返回值的作用 (5)方法的参数列表)方法的参数列表 :在声明方法中的参数时,需要说明参数的类型和个数。在声明方法中的参数时,需要说明参数的类型和个数。参数之间用逗号隔开,参数的数据类型可以是参数之间用逗号隔开,参数的数据类型可以是Java认可的任何数据类型

28、。认可的任何数据类型。参数名称在它的作用范围内是唯一的,即同一个方法中的参数名称不能参数名称在它的作用范围内是唯一的,即同一个方法中的参数名称不能相同。相同。 例例5-7:对象作为方法的参数:对象作为方法的参数 例例5-8:通过引用改变对象的值:通过引用改变对象的值 (6)方法块括号)方法块括号 的书写形式的书写形式 : 号的位置在号的位置在Java源代码中有两种源代码中有两种辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008例5-6:方法返回值的作用public class Circle /类开始类开始 private float fRadius; /成员

29、变量成员变量 final float PI=3.14f; /定义常变量定义常变量PI void setRadius(float fR) /设置圆半径设置圆半径 fRadius=fR; float getArea() /这里增加了带返回值的方法这里增加了带返回值的方法getArea() return fRadius*fRadius*PI; void showArea() /显示圆面积显示圆面积 System.out.println(The area of circle is +getArea(); /输出输出getArea()值值 public static void main(Stringar

30、gs) /主方法,即程序入口主方法,即程序入口 Circle circle=new Circle(); /创建圆类的对象创建圆类的对象 circle.setRadius(5);/引用对象方法,设置圆半径引用对象方法,设置圆半径 circle.showArea();/引用对象方法,显示圆面积引用对象方法,显示圆面积 辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008例5-7:对象作为方法的参数class Complex int real,virtual; public Complex(int r,int v) real=r; virtual=v; void s

31、howValue() System.out.println(复数值为:复数值为:+real+.+virtual); static Complex addComplex(Complex c1,Complex c2) Complex c=new Complex(0,0);c.real=c1.real+c2.real;c.virtual=c1.virtual+c2.virtual;return c; public class ObjectParaDemo public static void main(String args) Complex c,c1,c2;c1=new Complex(2,3);

32、c2=new Complex(4,5);c=Complex.addComplex(c1,c2);c.showValue(); 辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008例5-8:通过引用改变对象的值class Timer int minute,second; public Timer(int m,int s) minute=m; second=s; void showTime() System.out.println(现在时间是:现在时间是:+minute+分分+second+秒秒); static void swapTime(Timer t1,Ti

33、mer t2) Timer t=t1; /定义了局部变量定义了局部变量t,利用,利用t交换交换t1和和t2的值的值 t1=t2;t2=t; public class ReferenceDemo public static void main(String args) Timer t1=new Timer(9,10); Timer t2=new Timer(11,12); t1.showTime(); t2.showTime(); System.out.println(使用使用swapTime方法交换方法交换Timer实例后:实例后:); Timer.swapTime(t1,t2); t1.sh

34、owTime(); t2.showTime(); 辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong20085.2.5 方法重载(方法重载(OverLoad) 例例5-9:方法的重载:方法的重载 public class Sum public class Sum static int add(int x,int y)static int add(int x,int y) return x+y;return x+y; static int add(int x,int y,int z) static int add(int x,int y,int z) return x

35、+y+z; return x+y+z; static float add(float x,float y) static float add(float x,float y) return x+y; return x+y; public static void main(String args) public static void main(String args) System.out.println(add(2,3); System.out.println(add(2,3);System.out.println(add(2,3,4);System.out.println(add(2,3,

36、4); System.out.println(add(2.1f,3.2f);System.out.println(add(2.1f,3.2f); 辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong20085.2.6 构造方法构造方法 v 构造方法是一种特殊的方法,用来创建类的实例。构造方法是一种特殊的方法,用来创建类的实例。声明构造方法时,可以附加访问修饰符,但没有返回声明构造方法时,可以附加访问修饰符,但没有返回值,不能指定返回类型。值,不能指定返回类型。v 构造方法名必须和类同名。调用构造方法创建实构造方法名必须和类同名。调用构造方法创建实例时,用例时,用new

37、运算符加构造方法名。运算符加构造方法名。例例5-10:使用普通成员方法来为对象的成员属性赋值:使用普通成员方法来为对象的成员属性赋值 例例5-11:使用构造方法:使用构造方法 例例5-12:默认构造方法:默认构造方法 例例5-13:默认构造方法与自定义构造方法:默认构造方法与自定义构造方法 辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008例例5-10:普通成员方法为对象的成员属性赋值:普通成员方法为对象的成员属性赋值public class Timer int hour,minute,second; void setTime(int h,int m,int

38、 s) /用来赋值的成员方法用来赋值的成员方法 hour=h; minute=m; second=s; void showTime() System.out.println (现在时间是:现在时间是:+hour+:+minute+:+second); public static void main(String args) Timer t1=new Timer(); t1.setTime(10,11,12); t1.showTime(); 辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008例例5-11:使用构造方法:使用构造方法public class Ti

39、mer int hour,minute,second;public Timer(int h,int m,int s) /自定义的构造方法自定义的构造方法 hour=h;minute=m;second=s;void showTime()System.out.println(现在时间是:现在时间是:+hour+:+minute+:+second); public static void main(String args) Timer t1=new Timer(10,11,12); t1.showTime(); 辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008例

40、例5-12:默认构造方法:默认构造方法public class Timer int hour,minute,second;/ public Timer( ) /默认构造方法此方法可以省略 public static void main(String args) Timer t1=new Timer(); 辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008例5-13:默认构造方法与自定义构造方法public class Timer int hour,minute,second; public Timer( ) /默认构造方法,此例中不能省略默认构造方法,此例中

41、不能省略 /下面赋值语句不写也可,创建实例时会按照成员变量的默认值下面赋值语句不写也可,创建实例时会按照成员变量的默认值规则赋值规则赋值 hour=0; minute=0; second=0; public Timer(int h,int m,int s) /自定义的构造方法自定义的构造方法 hour=h; minute=m; second=s; void showTime() System.out.println(现在时间是:现在时间是:+hour+:+minute+:+second); public static void main(String args) Timer t1=new Ti

42、mer(10,11,12); t1.showTime(); Timer t2=new Timer( ); /调用了默认构造方法创建实例调用了默认构造方法创建实例 t2.showTime(); 辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong20085.2.7 main方法 v主方法主方法main()是整个程序进程的入口,也称主线程。()是整个程序进程的入口,也称主线程。vmain()方法格式如下:方法格式如下:public static void main(String args) 例例5-14:带控制台参数的类:带控制台参数的类public class Sum_

43、Args public static void main(String args) int a=Integer.parseInt(args0); int b=Integer.parseInt(args1); System.out.println(“a+b=”+(a+b); 先编译先编译DOS提示符提示符javac Sum_Args.java运行运行DOS提示符提示符java Sum_Args 2 3结果为结果为a+b=5辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong20085.3.1 Java的修饰符的修饰符 (1-1)v“封装封装”的基本思路是:将成员属性设为

44、的基本思路是:将成员属性设为private,使用户,使用户不能直接访问,将成员方法设为不能直接访问,将成员方法设为public,然后通过,然后通过public成员方法访问成员方法访问private成员属性。封装虽然最大限度上保证成员属性。封装虽然最大限度上保证了数据访问的安全,但了数据访问的安全,但private成员仅可供本类内的方法访成员仅可供本类内的方法访问,限制太严格。为了能够灵活的控制这些访问需求,问,限制太严格。为了能够灵活的控制这些访问需求,OOP提供了其它的一些访问控制修饰符用来控制在类、包提供了其它的一些访问控制修饰符用来控制在类、包内外部的访问权限内外部的访问权限vJava中

45、访问控制共有四个等级,三个关键字(访问修饰符)中访问控制共有四个等级,三个关键字(访问修饰符)分别是:分别是:public、protected、private,按照访问控制权限的高低排序为:按照访问控制权限的高低排序为:public protected 默认默认 private 辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong20085.3.1 Java的修饰符的修饰符(1-2) v功能如下:功能如下: 当成员被声明为当成员被声明为public时,该成员可以被程序任何代码时,该成员可以被程序任何代码模块所访问;模块所访问;当成员被声明为当成员被声明为protect

46、ed时,该成员只可以被该类子时,该成员只可以被该类子类的程序代码模块所访问;类的程序代码模块所访问;当缺省,无访问修饰符时,该成员只可以被该类所在包当缺省,无访问修饰符时,该成员只可以被该类所在包的类的程序代码模块所访问;的类的程序代码模块所访问;当成员被声明为当成员被声明为private时,该成员只可以被本类程序时,该成员只可以被本类程序代码模块所访问。代码模块所访问。 例例5-15:private访问控制修饰符的作用访问控制修饰符的作用 例例5-16:理解:理解main()方法在类中的地位方法在类中的地位 辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong200

47、8例例5-15:private访问控制修饰符的作用访问控制修饰符的作用class Access private int data; /private属性成员只能被本类访问属性成员只能被本类访问 void show() System.out.println(datas value is : +data); public class AccessDemo public static void main(String args) Access obj=new Access(); obj.show(); System.out.println(objects data is :+obj.data); 程

48、序无法编译,会提示下例错误信息:程序无法编译,会提示下例错误信息:AccessDemo.java:15: data has private access in Access 【代码说明代码说明】 错误提示代码第错误提示代码第15行访问了一个行访问了一个Access类的私有属性类的私有属性data,原因是:,原因是:private属性成员只能被本类访问,将第属性成员只能被本类访问,将第3行代码行代码data成员变量的成员变量的private修饰修饰符去掉即可正常运行。符去掉即可正常运行。 辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong2008例例5-16:理解:理

49、解main()方法在类中的地位方法在类中的地位 public class AccessDemo private int data; void show() System.out.println(datas value is : +data); public static void main(String args) AccessDemo obj=new AccessDemo(); obj.show(); System.out.println(objects data is :+obj.data);/调用私有成员调用私有成员 【运行结果运行结果】 datas value is : 0object

50、s data is :0 【代码说明代码说明】 虽然虽然data成员变量仍然是成员变量仍然是private,但因为,但因为main()方法与方法与data在同一类体内,可以在同一类体内,可以访问。这说明了一个事实:访问。这说明了一个事实:main()方法也是类的成员方法。只不过方法也是类的成员方法。只不过main()方法和方法和类的构造方法不参与继承。类的构造方法不参与继承。辽宁机电职业技术学院辽宁机电职业技术学院Designed By Chiyong20085.3.2 Java的存储修饰符的存储修饰符 vstatic修饰符修饰符 1、static成员的意义成员的意义 类成员的访问格式可以有两

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

当前位置:首页 > 教育专区 > 大学资料

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

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