




已阅读5页,还剩82页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java程序设计 面向对象技术 内容 n类和对象 n类的创建 n对象的创建 n类的封装 n类的继承 n类的多态性 n数组 n字符串 3.1 类和对象 n类是一个模型,它定义了一类对象的共同 特征和行为;对象是类的一个实例。 n类的组成: n成员变量:类内用于存储对象各项数据的变 量,它们反映对象的状态,也称为属性 ; n成员方法:描述对成员变量的操作。 n同一个类的不同对象可具有不同的状态, 而对象中的方法用于改变自身的状态; 3.2.1 类定义 n使用一个类之前必须先定义一个类 n类定义的组成部分:类声明、类体 n类定义的格式: 类修饰符 class 类名 extends 父类名 implents 接口名 类体 public class HelloWorld extends Applet public void paint(Graphics g) g.drawString(“Hello world!“, 50, 25); 类声明 类体 3.2.2 类体 n类体中定义了该类的所有成员变量和方法 ,这些成员变量和方法称为类的成员。 class 类名 成员变量 ; 成员方法 ; class Point int x, y; void init(int ix, int iy) x=ix; y=iy; 3.2.2.1 成员变量的声明 n格式: 修饰符 类型 变量名 =初值; 修饰符:说明成员变量的访问权限 类型:成员变量的类型 变量名:Java合法标识符 声明时可以给出变量的初始值 可同时声明多个成员变量(不推荐) public int a=1, b=2; public int a=1; public int b=2; public class Stack private int items; public int items() . . . 3.2.2.2 成员函数的声明 n格式 修饰符 返回值类型 函数名( 参数表) 函数 体 成员函数的声明必须放在class内 必须给出函数的返回类型,若无返 回值类型为void public class Stack private int items; public int items() . . . 3.3.1 对象的创建声明 n对象的声明 n格式:类型(class/interface名, ) 对象名 ; nString s; n对象的声明并不为对象分配内存,对象的 初始值为null;此时不能访问对象的成员。 class Num int i; Num m; m.i=0; 3.3.1 对象的创建实例化 n使用关键字new创建一个对象,并返回对象的引 用(相当于对象在内存中的地址); n可以在声明对象的同时创建对象; n每一个对象拥有其成员的单独拷贝; Num m=new Num(); Num n=new Num(); m.i=10; n.i=100; Num m; m=new Num(); m.i=10; class Num int i; class SimplePoint int x; int y; public class TwoSimplePoint public static void main(String args) SimplePoint p1 = new SimplePoint(); SimplePoint p2 = new SimplePoint(); p1.x = 10; p1.y = 20; p2.x = 100; p2.y = 200; System.out.println(“p1=“ + p1.x + “,“ + p1.y); System.out.println(“p2=“ + p2.x + “,“ + p2.y); x 10 y 20 0xFCA0 0xFC00 p1 p2 x100 y200 对象1 对象2 内存 内存 3.3.2 构造函数 n构造方法的特征 n构造方法的名称与类的名称相同 n构造方法没有返回值(不同于void返回值) n可以有多个构造方法,但每个构造方法的参数个数或类 型需不同 n构造方法的作用 n创建对象:对象的创建通过调用对象的构造方法实现; n初始化对象:在构造方法添加初始化成员变量的代码, 从而实现对成员变量的初始化(即,对象的初始化)。 n注意:Java中可以不定义构造方法,此时系统会自动 为该系统生成一个默认的构造方法。这个构造方法的 名字与类名相同,它没有任何形式参数,并将成员变 量初始化为默认值(数值类型为0或0.0,boolean类 型为false,复合数据类型为null) 构造函数示例 nNewPointTest.java 3.3.3 对象的使用 n访问成员变量 对象名.成员变量名 n调用成员方法 对象名.成员方法名 NewPoint p2=new NewPoint(10); p2.x=10; NewPoint p3=new NewPoint(100,200); p3.printLoc(); 3.3.4 对象的销毁 nJava的垃圾回收机制 n当没有任何引用能指向一个对象时,这个对 象将被JVM释放。(示例:NoReference.java ) nvoid finalize() (教材P73页错误) nJVM在释放一个对象之前,将调用该对象的 finallize方法,因此可以在该方法中进行特定地 清除操作。 3.3.5 再谈变量 实例变量和局部变量 n实例变量: 定义在类体之内, 方法体之外的变量. n局部变量: 定义在方法体之内的变量以及方法的参 数(形参). n唯一性: n在同一作用域中不能定义两个同名局部变量; n在同一个类中不能定义两个同名的实例变量; n但在一个类中可以定义与实例变量同名的局部变量, 此时在该局部变量的作用域内,此局部变量将隐藏同名的 实例变量. n实例变量和局部变量的唯一性示例(1) n实例变量和局部变量的唯一性示例(2) TestInstanceVar.java public class InstanceAndLocal int x,y,z; /double x; void init(int x,int y) int z=0; /*for(int x=0,y=0,z=0;z=0;i-) System.out.println(“a“+i+“=“+ai); 3.8.2 二(多)维数组 nN维数组是N-1维数组的数组,即每一个N维数组 元素是一个N-1维数组。 a23是一个二维数组,它的每一个元素是 一个一维数组,而每一个一维数组中包含三个元 素 n二维数组的声明 数据类型 数组名 ; 数据类型 数组名; int a ; /不能int a23; int a; /声明一个数组并未给数组元素分配内存,因 此 /不能访问该数组的元素,a00=0; 3.8.2.1 二维数组的创建 n先声明,后创建 int a ; a=new int23; /不能为a =new int23 n声明+创建 int a =new int23; n声明+创建第一维+创建第二维 int a =new int2 ; a0=new int3; a1=new int3; a 3.8.2.2 二维数组的初始化 n对每一元素分别赋初始化值; n定义时,同时初始化 int a = 1, 2,3; int a =1, 2, 3, 4, 5, 6; 3.8.2.3 二维数组元素的访问 n访问二维数组元素的格式: 数组名 下标1 下标2 如:a12访问二维数组a中第1维中的第2个 元素 n下标从0开始,到该维长度减1为止。 int a =new int1010; a的最后一个元素是a99,而不是 a1010; 3.8.2.3 二维数组示例 n显示方阵 n程序中数组元素tableij表示方阵的第i行 第j列元素 1 2 3 4 56 7 8 910 11 12 public class TwoD public static void main(String args) int table = new int34; for (int i = 0; i 3; i+) for (int j = 0; j 4; j+) tableij = (i * 4) + j + 1; System.out.print(tableij + “ “); System.out.println(); 3.8.2.4 不规则二维数组 n当为多维数组分配内存时,可以先分配第 一维(最左边的一维),然后再分别分配 其余的每一维; int a =new int2 ; a0=new int3; a1=new int3; int a =new int2 ; a0=new int1; a1=new int2; a a0 a1 a a0 a1 3.9 字符串 nJava中,String类是字符串常量类,该类 的对象在建立后不能修改。Java编译器保 证每个字符串常量都是String类对象。用双 引号括住的一串字符即为字符串常量,比 如“Welcome to Java!“,在通过编译器编译 后成为String对象。因而,实例化一个 String类对象既可以通过字符串常量,也可 以通过系统提供的构造方法。 3.9.1 构造字符串 String str1 = new String(“java String“); String str2 = “java String“; String str3 = new String(str2); System.out.println(str1); System.out.println(str2); System.out.println(str3); 方 法功能描述 “字符串字面值”Java编译器生成一个串对象 String(String str)用已知串生成一个串对象 3.9.2 String 类的方法 boolean equals(String s) 判断本串与s是否(内容) 相同 length() 返回字符串的长度 char charAt(int index) 返回第index位置的字符 int compareTo(String other) 比较两个字符串 int indexOf(String str) 从左到右检索某字符子串str在本串 中第一次出现的位置。若本串不包 含str,则返回-1 int lastIndexOf(String str) 从右向左检索某字符子串str在本串 中最后出现的位置。若本串不包含 str,则返回-1 3.9.2.1 字符串比较 nboolean equals(String s): 判断本串与s是 否(内容) 相同 n注意equals与=的区别: n仅当同一对象时为真 nequals: 内容相等(可为不同对象)时为真 String s = new String(“abc”); String s1 = new String(s); boolean b1 = (s = s1); / 结结果为为false boolean b2 = s.equals(s1); / 结结果为为true 3.9.2.2 字符串的长度 nint length(): 得到字符串的长度 n注意:不要与数组长度变量length混淆 String s = new String(“abc”); int i = s.length(); / i 为为 3 3.9.2.2 字符检索 nchar charAt(int i):返回本串的第i个字符( 从0算起) String s = new String(“abc”); char c = s.charAt(1);/结结果为为: b 3.9.2.3 字符串比较 nint compareTo(String s):比较本串与s的 字典序大小 n结果为: n0 : 本串等于s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届浙江省台州市温岭市五校联考英语九年级第一学期期末联考试题含解析
- 浙江省金华、丽水市2026届九年级化学第一学期期中质量检测模拟试题含解析
- 贵州省黔南州名校2026届英语九上期末综合测试试题含解析
- 2026届辽宁省海城市第六中学化学九年级第一学期期末监测试题含解析
- 山西省太原市名校2026届化学九上期中检测模拟试题含解析
- 开发商原因退房合同5篇
- 离职补偿协议范本:针对离职员工职业发展培训及提升
- 研发机构劳务派遣个人合同范本(含知识产权归属)
- 砼工程施工进度控制与协调劳务分包合同范本
- 生态保护区物业管理股权收购与生态保护合作合同
- 人教版七上《峥嵘岁月-美术中的历史》教案
- 职工食堂服务(技术方案)
- 厂房租赁合同书格式
- GB/T 15934-2024电器附件电线组件和互连电线组件
- 《计算机网络技术》课程教案(完整版)
- 育肥猪购销协议书
- 《建筑工程设计文件编制深度规定》(2022年版)
- 西安交通大学出版小学信息技术五年级上册教案
- 水库清淤项目可行性研究报告
- 工程项目计价结算付款情况统计表
- DL∕T 797-2012 风力发电场检修规程
评论
0/150
提交评论