第0章_程序设计基础2

上传人:wm****3 文档编号:51901463 上传时间:2018-08-17 格式:PPT 页数:94 大小:460.50KB
返回 下载 相关 举报
第0章_程序设计基础2_第1页
第1页 / 共94页
第0章_程序设计基础2_第2页
第2页 / 共94页
第0章_程序设计基础2_第3页
第3页 / 共94页
第0章_程序设计基础2_第4页
第4页 / 共94页
第0章_程序设计基础2_第5页
第5页 / 共94页
点击查看更多>>
资源描述

《第0章_程序设计基础2》由会员分享,可在线阅读,更多相关《第0章_程序设计基础2(94页珍藏版)》请在金锄头文库上搜索。

1、0.2 类与对象0.2.1 类声明和类体 类是组成Java程序的基本要素。类封装了一 类对象的状态和方法。在语法上,类由两部分构成:类声明和类体 。基本格式为:class 类名 类体的内容 类体的构成 类体内容可以有2种类型的成员:1成员变量:通过变量声明定义的变量, 称作成员变量或域,用来刻画类创建的对象 的属性。2方法:方法是类体的重要成员之一。其 中的构造方法是具有特殊地位的方法,供类 创建对象时使用,用来给出类所创建的对象 的初始状态,另一类方法,可以由类所创建 的对象调用,对象调用这些方法操作成员变 量形成一定的算法,体现对象具有某种功能 。类体的构成class 类名 成员变量; 方

2、法; nclass carn int speed; /变量定义部分n float weight,height; /变量定义部 分n void changeSpeed(int newSpeed) n speed=newSpeed; n n float getWeight() n return weight; n n float getHeight() n return height; n n例:类中有一部分方法称作构造方法,类创建对 象时需使用构造方法,以便给类所创建的对 象一个合理的初始状态。构造方法是一种特 殊方法,它的名字必须与它所在的类的名字 完全相同,并且不返回任何数据类型,即它 是v

3、oid型,但void必须省略不写。Java允许一 个类中有若干个构造方法,但这些构造方法 的参数必须不同,即或者是参数的个数不同 ,或者是参数的类型不同。下面的Rect类有 两个构造方法: 0.2.2 构造方法与对象的创建 nclass Rect n n double sideA,sideB;n Rect() /无参数构造方法。n n n Rect(double a,double b) /有参数构造方 法。n n sideA=a;n sideB=b;n n double computerArea()n n return sideA*sideB;n n double computerGirth(

4、)n n return (sideA+sideB)*2;n n构 造 方 法创建对象当使用一个类创建一个对象时,我们也说给出了这个 类的一个实例。创建一个对象包括对象的声明和为 对象分配成员变量两个步骤。1对象的声明。一般格式为:类的名字 对象名字;如:Rect rectangleOne; 创建对象2为声明的对象分配成员变量使用new运算符和类的构造方法为声明的对象分配成 员变量,如果类中没有构造方法,系统会调用默认 的构造方法(默认的构造方法是无参数的,你一定 还记得构造方法的名字必须和类名相同这一规定) ,上述的Rect类提供了2个构造方法,下面都是合法 的创建对象的语句:rectangl

5、eOne =new Rect();或rectangleOne =new Rect(10,20);npublic class Examplenn public static void main(String args )n n double x;n Rect rectangleOne;n rectangleOne =new Rect(10,20);n x=rectangleOputerArea();n System.out.printf(“ %f n“,x); n n例:使用对象对象不仅可以操作自己的变量改变状态, 而且还拥有了使用创建它的那个类中的方法 的能力,对象通过使用这些方法可以产生一

6、定的行为。通过使用运算符“.”,对象可以实现对自己的 变量访问 和方法的调用。(1)对象操作自己的变量(对象的属性)(2)对象调用类中的方法(对象的功能) 返回import java.util.*;class studentint number;int age;boolean sex;float score;student()number=0;age=0;sex=true;score=0; student(int n,int a,boolean se,float sc)number=n;age=a;sex=se;score=sc; void setNumber(int n)number=n;

7、void setAge(int a)age=a; void setSex(boolean x)sex=x; void setScore(float x)score=x; int getNumber()return number; float getScore()return score; void display()char c;System.out.printf(“学号 %d 年龄%d 性别%c 成绩%f n“,number,age,(sex=true?男:女),score); public class as public static void main (String args )stu

8、dent zhang,li;zhang=new student();li=new student(11,20,false,85); zhang.display(); li.display(); zhang.setNumber(15); zhang.setAge(22); zhang.display(); System.out.printf(“李同学的成绩是:%fn“,li.score); import java.util.*;class studentint number;int age;boolean sex;float score;student()number=0;age=0;sex=t

9、rue;score=0; student(int n,int a,boolean se,float sc)number=n;age=a;sex=se;score=sc; void setNumber(int n)number=n; void setAge(int a)age=a; void setSex(boolean x)sex=x; void setScore(float x)score=x; int getNumber()return number; float getScore()return score; void display() char c;System.out.printf

10、(“学号 %d 年龄%d 性别%c 成绩%f n“,number,age,(sex=true?男:女 ),score); public class aspublic static void main (String args )student zhang,li;zhang=new student();li=new student(11,20,false,85); zhang.display(); li.display(); zhang.setNumber(15); zhang.setAge(22); zhang.display(); System.out.printf(“李同学的成绩 是:%f

11、n“,li.score); 0.2.3 成员变量-类变量和实例变量 用关键字static修饰的成员变量称作静态变量或类变 量,而没有使用static修饰的成员变量称作实例变量 。例如,下述A类中,x是实例变量,而y是类变量。class A float x;static int y;类变量是与类相关联的数据变量,也就是说,类变 量是和该类所创建的所有对象相关联的变量,改变 其中一个对象的这个类变量就同时改变了其它对象 的这个类变量。因此,类变量不仅可以通过某个对象访问也 可以直接通过类名访问。实例变量仅仅是和相应的对象关联的变 量,也就是说,不同对象的实例变量互不相 同,即分配不同的内存空间,改

12、变其中一个 对象的实例变量不会影响其它对象的这个实 例变量。实例变量必须通过对象访问。nclass A n n int x;n static int y,z;n npublic class asn n public static void main (String args )n nA a1=new A();nA a2=new A();n a1.x=1;n a1.y=2;n A.z=3;n System.out.printf(“a1.x=%d a1.y=%d a1.z=%d a2.x=%d a2.y=%d a2.z=%d n“,a1.x,a1.y,a1.z,a2.x,a2.y,a2.z);n

13、n例:0.2.4 方法 方法的定义包括两部分:方法声明和方法体。一般格式为:方法声明部分 方法体的内容 其中:方法声明包括方法名和方法的返回类型,返回类型 也简称作方法的类型。如: float area() . 实例方法与类方法除构造方法外,其他的方法可分为实例 方法或类方法。方法声明中用关键字 static修饰的称作类方法或静态方法, 不用static修饰的称作实例方法。一个 类中的方法可以互相调用:实例方法可 以调用该类中实例方法或类方法;类方 法只能调用该类的类方法,不能调用实 例方法;实例方法可以操作成员变量,无论是实例变量或类 变量;而类方法只能操作类变量不能操作实例变量 ,也就是说

14、类方法中不能有操作实例变量的语句。(1)实例方法必须通过对象来调用(2)类方法可以通过类名调用无论类方法或实例方法,当被调用执行时,方法中 的局部变量才被分配内存空间,方法调用完毕,局 部变量即刻释放所占的内存。nclass A n n int min(int x,int y)n n return xy?x:y;n nnpublic class asn n public static void main (String args )n nA a1=new A();nSystem.out.printf(“max=%d min=%d n“,A.max(3,5),a1.min(3,5);n nA类中

15、的max方法是类方法;min方法是实例方法。0.2.6 this 关键字 this是Java的一个关键字,可以出现在 实例方法和构造方法中,但不可以出现 在类方法中。4使用this区分成员变量和局部变量我们已经知道,成员变量在整个类内有效,局部变量 仅在方法内有效。在方法体中声明的变量以及方法 的参数称作局部变量,方法的参数在整个方法内有 效,方法内定义的局部变量从它定义的位置之后开 始有效。如果局部变量的名字与成员变量的名字相同,则成员 变量被隐藏,即这个成员变量在这个方法内暂时失 效。如:返回nclass trianglenn float sideA,sideB,sideC,lengthSum;n void setSide(float

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

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号