收藏 分享(赏)

面向对象程序设计概念-JAVA.ppt

上传人:saw518 文档编号:4619282 上传时间:2019-01-05 格式:PPT 页数:34 大小:188.50KB
下载 相关 举报
面向对象程序设计概念-JAVA.ppt_第1页
第1页 / 共34页
面向对象程序设计概念-JAVA.ppt_第2页
第2页 / 共34页
面向对象程序设计概念-JAVA.ppt_第3页
第3页 / 共34页
面向对象程序设计概念-JAVA.ppt_第4页
第4页 / 共34页
面向对象程序设计概念-JAVA.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、面向对象的程序设计概念,对象与类,简单地说: 对象是表示现实世界中某个具体的事物; 类是对对象的抽象描述。,定义类,修饰符 class 类名 extends 父类 implements 接口名 类成员变量声明;类方法声明; ,Java实例 定义类,class C / C是类名.int n = 0; / 定义 変量.int m(int a) / 定义方法. return 2*a; ,对象的定义,修饰符 类名 对象名=new 类名(实参列表); 或 修饰符 类名 对象名; 对象名=new 类名(实参列表);,创建对象,类名 对象名;(1) C obj1 = new C( ); 注意:类属于复合数据

2、类型,因此,在声明对象时,系统并没有为对象分配空间,用户需要应用new完成分配空间的任务。,(2)C obj1obj1=new C( );,Java实例 创建对象,续接Java实例定义类 Public class 类名 public static void main(String args) C obj1 = new C(); /()C obj2; /() obj2 = new C(); ,对象的引用,引用成员变量对象名.成员变量名 引用方法对象名.方法名(参数列表) Example C,类的创建,class C variable; method;Public class name publi

3、c static void main(String args) C obj = new C(); Public class C variable; method; public static void main(String args) C obj = new C(); Example C, d111,类的创建,创建对象,例: Point p1; p1 = new Point(23, 94); Rectangle r1 = new Rectangle(origin_one, 100, 200); Rectangle r2= new Rectangle(50, 100);,创建对象的三个步骤:

4、声明 (Declaration ) 实例化(Instantiation) 初始化(Initialization),对象实例化过程,构造与初始化对象的过程(调用new Xxxx():开辟内存空间(变量、方法体代码)及类成员 变量的初始化:数值型:0; 布尔型:false; 引用型:null; 字符串型:null;显式初始化:执行类成员声明时带有的简单 赋值表达式。public class Initializedprivate int x = 5 ;private String name = “Fred”; 执行构造函数(对象的初始化)。,对象的初始化,类中包含有成员变量和方法,当使用类声明并创建

5、对象时,使用new关键字,这时系统为对象创建自己的内存区域并自动调用构造方法初始化成员变量。,构造方法,构造方法是一个特殊的成员方法,它与类名相同。在创建对象空间后,系统自动根据参数调用相应的构造函数。 构造函数的主要功能是为数据成员赋初值。,Java实例 定义构造方法,class H H(int a) System.out.println(“a = “ + a); Public class d112 public static void main(String args) H obj = new H(123); /() Example d112,构造方法的特点,构造方法名与类名相同; 构造方

6、法没有返回类型,也不是void; 构造方法的主要作用是对类对象的初始化。如果没有定义构造方法时,各种类型的默认值; 构造方法不能由编程人员显式地直接调用; 使用不同数量、不同类型的参数对类初始化会拥有多个构造方法; Example ClassAndObject,Java实例 定义构造方法 Example Student,class StudentString name;String address;String grade;Student(String x1,String x2,String x3) /定义构造方法name=x1;address=x2;grade=x3; ,public sta

7、tic void main(String args)Student zhang=new Student (“张三”,“南昌路1号”,“2003级3班”); /声明并创建zhang对象Student wang=new Student (“王五”,“南昌路1号”,“2003级3班”); /声明并创建zhang对象System.out.println(zhang.name+zhang.address+zhang.grade); System.out.println(wang.name+wang.address+wang.grade); ,Java实例(续),使用new创建对象时,Java系统自动调用

8、与类同名的构造方法。,如果在类定义中无构造函数,Java在编译时 可缺省加入构造方法。如 public Employee( ) ;一旦在类中有一个自己声明的构造函数,则缺省 的构造函数将不被加到源程序中。,缺省构造函数,对象(object),计算机世界中的对象是把数据及其相关的操作封装在一起所构成的实体。 封装的实体 = 数据+方法(行为) 数据:属性或状态 方法: 作用于数据上的操作 封装:属性的访问和变化通过方法完成,方法(method),方法 是对象的行为方式(操作) 对象与外界的接口 作用 改变对象的属性 返回对象的属性,object1,object2,数据隐藏与封装,数据隐藏:使用p

9、rivate定义的成员变量,只能在成员方法中使用,其它方法中禁止使用。 优点: 保证对象中数据的一致性。封装:基本数据和对数据进行的操作方法的结合。优点: 隐藏类中具体实现的细节。 强迫程序员使用统一的接口访问数据。 使代码可维护性好。,数据隐藏与封装举例,Class Dateprivate int day, month, year;void setDate( int a, int b, int c)day = a;month = b;year = c ;int getDay return(day) Date d1=new Date( ); d1.setDate(30,9,2001); /d1

10、.day = 30;(错误!); d1.getDay();,Java实例封装的实体,class MyDate private int day;private int month;private int year;public String getDate()return day+“/“+month+“/“+year;public void setDate(int a,int b,int c) day=a;month=b;year=c; public class UseMyDatepublic static void main(String args)MyDate d = new MyDate(

11、);d.setDate(12,05,2006);System.out.println(d.getDate(); ,五、类成员变量的定义,定义:访问权限符 static final 类型 变量名 权限修饰符有:public、protected和private static:在成员变量前说明该变量是静态变量。 final:在成员变量前说明该变量是一个最终变量,修饰符 this,将当前对象的引用变量传递给另一个方法; 如果方法体内部定义的变量与成员变量名字相同或方法的入口参数与成员变量名相同。如:class TestColorint r,g,b;TestColor(int r,int g,int b

12、)this.r=r;this.g=g;this.b=b;,Java实例 this,public class VarTest private int x=1;private int y=1;void changeVar(int a,int b) int x=a; /x使同名类成员变量隐藏int y = b; /y使同名类成员变量隐藏System.out.println(“In changVar : “+“x = “+x+“ y =“+y);this.y=b; /给类成员变量z赋值String getXYZ()return “x = “+x+“ y =“+y;public static void

13、main( String args ) VarTest v=new VarTest();System.out.println(“Before changVar : “+v.getXYZ(); v.changeVar(10,10);System.out.println(“After changeVar: “+v.getXYZ(); ,类成员方法定义,一般格式:()throws 方法是传值的,方法调用不会改变参数的值。当对象作为参数时,参数的值是该对象的引用,这时对象的内容可以在方法中改变,但是对象的引用不会改变。,举例,Public class PassTestfloat ptValue;pub

14、lic void changeInt(int value)value = 55 ; public void changeStr(String value)value = new String(different“); public void changeObjValue( PassTest ref)ref.ptValue = 99.0f; public static void main(String args )String str;int val;PassTest pt= new PassTest( );val = 11;pt.changeInt(val);System.out.printl

15、n(“Int value is:” +val);str = new String(“hello”);pt.changeStr(str);System.out.println(“str value is:” +str);pt.ptvalue = 101.0f ;pt.changeObjValue(pt);System.out.println(“pt value is:” +pt.ptValue);,结果:Int Value is : 11 Str Value is : hello pt value is : 99.0f,重载(Overloading),含义:在同一个类中一个方法名被用来定义多个方

16、法。classScreen public void print( int i) public void print( float i) public void print( String str ) 重载必须遵守原则:参数表必须不同,以此区分不同方法体。 返回类型、修饰符可相同或不相同。,激活重载的构造函数,在一个构造函数中可以利用另一个构造函数。 class Employeeprivate String name;private int salary;public Employee(String n, int s)name = n ;salary = s;public Employee( S

17、tring n) this(n,0); public Employee( ) this(“Unknown”); ,Java 类库,Java类库也称作Java API (Application Programming Interface)。在学习Java时,实际上学习内容分成两部分。 第一部分是Java语言本身,以便编写自己的类; 第二部分学会扩展Java类库的类。本书通过例子讨论了Java的大量类库的使用。,Java 类库,Java中的包: Java为编写应用程序提供了丰富的预定义类库,这些预定义类库按相关类的范畴进行了分组,这些分组被称作包(package). 一个包是一个已命名的类的集合,一个包还可以包含其他的子包。Java所有的包被称为Java应用程序接口API。Java API包分成: 核心包(以java开头的包) 和可选包(以javax开头的包)核心包和可选包一般被包含Java开发工具包中。,消息(message),消息 对象之间相互请求或相互协作的途径,是要求某个对象执行某项操作的规格说明 消息内容 通常包含接收对象及请求接收对象完成的功能信息 发送对象 发出消息,请求接收对象响应 接收对象 收到消息后,经过解释,激活方法,予以响应String a,b;a.trim()a.concat(b),

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > Java

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报