版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 obj1 obj1=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 n
3、ame public 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 Initialized private 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 Student String name; String address; String grade; Student(String x1,String x2,String x3) /定义构造方法 name=x1; address=x2; gr
7、ade=x3; ,public static void main(String args) Student zhang=new Student (“张三”,“南昌路1号”,“2003级3班”); /声明并创建zhang对象 Student wang=new Student (“王五”,“南昌路1号”,“2003级3班”); /声明并创建zhang对象 System.out.println(+zhang.address+zhang.grade); System.out.println(+wang.address+wang.grade); ,Java实例(续)
8、,使用new创建对象时,Java系统自动调用与类同名的构造方法。,如果在类定义中无构造函数,Java在编译时 可缺省加入构造方法。如 public Employee( ) ; 一旦在类中有一个自己声明的构造函数,则缺省 的构造函数将不被加到源程序中。,缺省构造函数,对象(object),计算机世界中的对象是把数据及其相关的操作封装在一起所构成的实体。 封装的实体 = 数据+方法(行为) 数据:属性或状态 方法: 作用于数据上的操作 封装:属性的访问和变化通过方法完成,方法(method),方法 是对象的行为方式(操作) 对象与外界的接口 作用 改变对象的属性 返回对象的属性,object1,o
9、bject2,数据隐藏与封装,数据隐藏:使用private定义的成员变量,只能 在成员方法中使用,其它方法中禁止使用。 优点: 保证对象中数据的一致性。 封装:基本数据和对数据进行的操作方法的结合。 优点: 隐藏类中具体实现的细节。 强迫程序员使用统一的接口访问数据。 使代码可维护性好。,数据隐藏与封装举例,Class Date private 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 Dat
10、e( ); d1.setDate(30,9,2001); /d1.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 UseMyDate public static void mai
11、n(String args) MyDate d = new MyDate(); d.setDate(12,05,2006); System.out.println(d.getDate(); ,五、类成员变量的定义,定义: 访问权限符 static final 类型 变量名 权限修饰符有: public、protected和private static:在成员变量前说明该变量是静态变量。 final:在成员变量前说明该变量是一个最终变量,修饰符 this,将当前对象的引用变量传递给另一个方法; 如果方法体内部定义的变量与成员变量名字相同或方法的入口参数与成员变量名相同。 如:class Test
12、Color int r,g,b; TestColor(int r,int g,int b) 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 getX
13、YZ() return x = +x+ y =+y; public static void 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 方法是传值的,方法调用不会改变参数的值。 当对象作为参数时,参数的值是该对象的引用, 这时对象的内容可以在方法中改变,但是对象的 引
14、用不会改变。,举例,Public class PassTest float ptValue; public 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
15、PassTest( ); val = 11; pt.changeInt(val); System.out.println(“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
16、 : hello pt value is : 99.0f,重载(Overloading),含义:在同一个类中一个方法名被用来定义多个 方法。 classScreen public void print( int i) public void print( float i) public void print( String str ) 重载必须遵守原则: 参数表必须不同,以此区分不同方法体。 返回类型、修饰符可相同或不相同。,激活重载的构造函数,在一个构造函数中可以利用另一个构造函数。 class Employee private String name; private int salary
17、; public Employee(String n, int s) name = n ; salary = s; public Employee( String n) this(n,0); public Employee( ) this(“Unknown”); ,Java 类库,Java类库也称作Java API (Application Programming Interface)。 在学习Java时,实际上学习内容分成两部分。 第一部分是Java语言本身,以便编写自己的类; 第二部分学会扩展Java类库的类。 本书通过例子讨论了Java的大量类库的使用。,Java 类库,Java中的包: Java为编写应用程序提供了丰富的预定义类库,这些预定义类库按相关类的范畴进行了分组,这些分组被称作包(package). 一个包是一个已命
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 部编版道德与法治三年级下册第十二课《待人要诚信》第一课时 课件
- 家政服务员操作规范测试考核试卷含答案
- 复印设备制造工操作知识测试考核试卷含答案
- 26年长期生存质量评估
- 26年提升方案设计指引
- 医学26年老年心血管疾病运动处方制定查房课件
- 无人驾驶安全防护体系搭建实施方案
- 2026 减脂期炒肉课件
- 赵会吉-催化作用基础 第二章 催化剂的表面吸附和孔内扩散-3-
- 医学26年:PI3K抑制剂临床应用 查房课件
- 2026年ESG(可持续发展)考试题及答案
- 2026广东广州市越秀区人民街道办事处招聘社区退管专职人员2人笔试参考题库及答案详解
- 13.1 在劳动中创造人生价值 课件(内嵌视频)2025-2026学年统编版道德与法治七年级上册
- 2026年新版事故应急处置卡模板(新版27类事故分类依据YJT 32-2025要求编制)
- 20S515 钢筋混凝土及砖砌排水检查井
- (正式版)HGT 22820-2024 化工安全仪表系统工程设计规范
- 水电费用分摊方式
- 金属冶炼安全应急处理手册要点
- 预防跌倒坠床的风险评估及干预
- 储层改造技术(交流)
- 动物福利伦理学介绍
评论
0/150
提交评论