《Java2实用教程》第四版备课笔记第11页仅在该循环语句中有效。·写一个方法和C语言中写一个函数类似,只不过在这里称做方法。class A(void f0)( int m=10,sum=0:if(m>9)( int z=10;Z=2*m+z,3For (int i=0;i<m;i++)1sum=sum+i,3M=sum;Z=i+sum;135.方法重载方法重载:是多态性的一种,一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。class Areafloat getArea(float r)(return3.14f*r*r,double getArea(float x,inty)( return x*y,1float getArea(int x,float y)( return x*y,1double getArea(float x,float y,floatz)( return (x*x+y*y+z*z)*2.0;36.构造方法构造方法是一种特殊方法,它的名字必须与它所在的类的名字完全相同,而且没有类型,构造方法也可以重载。class梯形1float上底,下底,高;梯形(上底=60;下底=100;高=20;1梯形(floatx,inty,floath)上底=x,下底=y,高=h
《Java2 实用教程》第四版备课笔记 第 11 页 仅在该循环语句中有效。 ⚫ 写一个方法和 C 语言中写一个函数类似,只不过在这里称做方法。 class A { void f() { int m=10,sum=0; if(m>9) { int z=10; z=2*m+z; } For (int i=0;i<m;i++) { sum=sum+i; } M=sum; Z=i+sum; } } 5.方法重载 方法重载:是多态性的一种,一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同, 即或者是参数的个数不同,或者是参数的类型不同。 class Area { float getArea(float r) { return 3.14f*r*r; } double getArea(float x,int y) { return x*y; } float getArea(int x,float y) { return x*y; } double getArea(float x,float y,float z) { return (x*x+y*y+z*z)*2.0; } } 6.构造方法 构造方法是一种特殊方法,它的名字必须与它所在的类的名字完全相同,而且没有类型,构造方法也 可以重载。 class 梯形 { float 上底,下底,高; 梯形() { 上底=60; 下底=100; 高=20; } 梯形(float x,int y,float h) { 上底=x; 下底=y; 高=h;
《Java2实用教程》第四版备课笔记第12页117.类方法和实例方法类中的方法也可分为实例方法和类方法方法声明时,方法类型前面不加关键字static的是实例方法、加关键字static的是类方法。构造方法是特殊的方法,不能用static修饰构造方法。8.值得注意的问题(1)对成员变量的操作只能放在方法中,方法可以对成员变量和方法体中自已定义的局部变量进行操作。合法:非法:Class Aclass A(inta=12;( int a,3a=12;1(2)实例方法既能对类变量操作,也能对实例变量操作,而类方法只能对类变量进行操作。class Ainta,static int b,void f(int x,int y)Ⅱ合法(a=x;b=y,Ⅱ合法3static void g(int z)b=23;Ⅱ/合法/非法a-z,33(3)一个类中的方法可以互相调用,实例方法可以调用该类中的其他方法;类中的类方法只能调用该类的类方法。class Afloat a,1void setA(float x,float y)La=get(x,y);3static float get(float x,float y)float c=max(x,y);returnc,3Staticfloat max(floatx,floaty)returnx>y?xy334.3对象类是创建对象的模板。当使用一个类创建了一个对象时,就给出了这个类的一个实例。1.创建对象创建一个对象包括对象的声明和为对象分配内存两个步骤。(1).对象的声明。般格式为:类的名字对象名字;如:PeoplezhangPing,(2)为声明的对象分配内存
《Java2 实用教程》第四版备课笔记 第 12 页 } } 7.类方法和实例方法 类中的方法也可分为实例方法和类方法. 方法声明时,方法类型前面不加关键字 static 的是实例方法、加关键字 static 的是类方法。 构造方法是特殊的方法,不能用 static 修饰构造方法。 8.值得注意的问题 (1)对成员变量的操作只能放在方法中,方法可以对成员变量和方法体中自己定义的局部变量进行操作。 合法: 非法: Class A class A { int a=12; { int a; } a=12; } (2) 实例方法既能对类变量操作,也能对实例变量操作,而类方法只能对类变量进行操作。 class A { int a; static int b; void f(int x,int y) {a=x; //合法 b=y; //合法 } static void g(int z) { b=23; //合法 a=z; //非法 } } (3) 一个类中的方法可以互相调用,实例方法可以调用该类中的其他方法;类中的类方法只能调用该类的 类方法。 class A { float a; void setA(float x,float y) { a=get(x,y); } static float get(float x,float y) { float c=max(x,y); return c; } Static float max(float x,float y) { return x>y?x:y } } 4.3 对象 类是创建对象的模板。当使用一个类创建了一个对象时,就给出了这个类的一个实例。 1.创建对象 创建一个对象包括对象的声明和为对象分配内存两个步骤。 (1).对象的声明。 一般格式为:类的名字 对象名字;如: People zhangPing; (2)为声明的对象分配内存
《Java2实用教程》第四版备课笔记第13页使用new运算符和类的构造方法为声明的对象分配内存,如果类中没有构造方法,系统会调用默认的构造方法(默认的构造方法是无参数的,你一定还记得构造方法的名字必须和类名相同这一规定)。如:zhangPing=new PeopleO);class XiyoujiRenwufloat height,weight,String head, ear,hand,foot, mouth,void speak(String s)System.out.println(s),33class Apublic static void main(String args)1/声明对象XiyoujiRenwu zhubajie;zhubajie-newXiyoujiRenwuO;//为对象分配内存,//使用new运算符和默认的构造方法33class Point1int x,y,Point(int a, int b)x=a,y=b,13publicclassApublic staticvoidmain(Stringargs[J)//声明对象p1和p2Point pl,p2;pl=newPoint(10,10);I为对象分配内存,使用new和类中的构造方法p2=newPoint(23,35);/为对象分配内存,使用new和类中的构造方法33(3)对象的内存模型class XiyoujiRenwufloat height, weight,String head, ear,hand,foot, mouth,void speak(String s)System.out.println(s),33class Apublic static void main(String args)1/声明对象XiyoujiRenwu zhubajie,zhubajie-newXiyoujiRenwuO;//为对象分配内存,//使用new运算符和默认的构造方法37声明对象时的内存模型当用XiyoujiRenwu类声明一个变量,即对象zhubajie时,如例子1中的对象zhubajie:
《Java2 实用教程》第四版备课笔记 第 13 页 使用 new 运算符和类的构造方法为声明的对象分配内存,如果类中没有构造方法,系统会调用默认的 构造方法(默认的构造方法是无参数的,你一定还记得构造方法的名字必须和类名相同这一规定)。如: zhangPing=new People(); class XiyoujiRenwu { float height,weight; String head, ear,hand,foot, mouth; void speak(String s) { System.out.println(s); } } class A { public static void main(String args[]) { XiyoujiRenwu zhubajie; //声明对象 zhubajie=new XiyoujiRenwu(); //为对象分配内存, //使用 new 运算符和默认的构造方法 } } class Point { int x,y; Point(int a,int b) { x=a; y=b; } } public class A { public static void main(String args[ ]) { Point p1,p2; //声明对象 p1 和 p2 p1=new Point(10,10); //为对象分配内存,使用 new 和类中的构造方法 p2=new Point(23,35); //为对象分配内存,使用 new 和类中的构造方法 } } (3)对象的内存模型 class XiyoujiRenwu { float height,weight; String head, ear,hand,foot, mouth; void speak(String s) { System.out.println(s); } } class A { public static void main(String args[]) { XiyoujiRenwu zhubajie; //声明对象 zhubajie=new XiyoujiRenwu(); //为对象分配内存, //使用 new 运算符和默认的构造方法 } } 声明对象时的内存模型 当用 XiyoujiRenwu 类声明一个变量,即对象 zhubajie 时,如例子 1 中的对象 zhubajie:
第14页(Java2实用教程》第四版备课笔记XiyoujiRemwuzhubajiethubaji内存模型如左图所示E未分配实体的对象对象分配内存后的内存模型0.weigh当系统见到:zhubajie=newXiyoujiRemwu:时,就会做两件事:.heigst①为height,weight,head,ear,mouth,hand,foot各个变量分配内4habajryeiaEul法中存,即XiyoujiRenwu类的成员变量被分配内存空间,然后执行构造方DxAB12ulinouth的语句。handalmulfoot②new运算符在为变量height,weight,head,ear,mouth,hand,foot分配实体后的对象分配内存后,将返回一个引用给对象变量zhubajie。2.使用对象对象不仅可以操作自已的变量改变状态,而且还拥有了使用创建它的那个类中的方法的能力,对象通过使用这些方法可以产生一定的行为。通过使用运算符“”,对象可以实现对自己的变量访问和方法的调用。当对象调用方法时,方法中出现的成员变量就是指该对象的成员变量。3.对象的引用和实体当用类创建一个对象时,类中的成员变量被分配内存空间,这些内存空间称做该对象的实体,而对象中存放着引用,以确保实体由该对象操作使用。一个类创建的两个对象,如果具有相同的引用,那么就具有完全相同的实体。没有实体的对象称作空对象,空对象不能使用,即不能让一个空对象去调用方法产生行为。4.参数传值当方法被调用时,如果方法有参数,参数必须要实例化,即参数变量必须有具体的值。在Java中,方法的所有参数都是“传值的,也就是说,方法中参数变量的值是调用者指定的值的拷贝。例如,如果向方法的int型参数x传递一个int值,那么参数x得到的值是传递值的拷贝。方法如果改变参数的值,不会影响向参数“传值"的变量的值。基本数据类型参数的传值对于基本数据类型的参数,向该参数传递的值的级别不可以高于该参数的级别,比如,不可以向int型参数传递一个float值,但可以向double型参数传递一个float值。引用类型参数的传值Java的引用型数据包括对象、数组和接口。当参数是引用类型时,“传值"传递的是变量的引用而不是变量所引用的实体。如果改变参数变量所引用的实体,就会导致原变量的实体发生同样的变化。但是,改变参数的引用不会影响向其传值的变量的引用。传值引用引用实体引用型变量引用型参数4.4static关键字用static修饰的成员变量称为类变量用static修饰的方法称为类方法1.实例变量和类变量的区别个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空
《Java2 实用教程》第四版备课笔记 第 14 页 XiyoujiRenwu zhubajie; 内存模型如左图所示 对象分配内存后的内存模型 当系统见到:zhubajie=newXiyoujiRenwu();时,就会做两件事: ① 为 height,weight,head,ear,mouth,hand,foot 各个变量分 配 内 存,即 XiyoujiRenwu 类的成员变量被分配内存空间,然后执行构造方 法 中 的语句。 ② new 运算符在为变量 height,weight,head,ear,mouth,hand, foot 分配内存后,将返回一个引用给对象变量 zhubajie。 2.使用对象 对象不仅可以操作自己的变量改变状态,而且还拥有了使用创建它的那个类中的方法的能力,对象通 过使用这些方法可以产生一定的行为。 通过使用运算符“.”,对象可以实现对自己的变量访问和方法的调用。 当对象调用方法时,方法中出现的成员变量就是指该对象的成员变量。 3.对象的引用和实体 当用类创建一个对象时,类中的成员变量被分配内存空间,这些内存空间称做该对象的实体,而对象 中存放着引用,以确保实体由该对象操作使用。 一个类创建的两个对象,如果具有相同的引用,那么就具有完全相同的实体。 没有实体的对象称作空对象,空对象不能使用,即不能让一个空对象去调用方法产生行为。 4.参数传值 当方法被调用时,如果方法有参数,参数必须要实例化,即参数变量必须有具体的值。在 Java 中,方 法的所有参数都是“传值”的,也就是说,方法中参数变量的值是调用者指定的值的拷贝。例如,如果向方 法的 int 型参数 x 传递一个 int 值,那么参数 x 得到的值是传递值的拷贝。方法如果改变参数的值,不会影 响向参数“传值”的变量的值。 基本数据类型参数的传值 对于基本数据类型的参数,向该参数传递的值的级别不可以高于该参数的级别,比如,不可以向 int 型参数传递一个 float 值,但可以向 double 型参数传递一个 float 值。 引用类型参数的传值 Java 的引用型数据包括对象、数组和接口。当参数是引用类型时,“传值”传递的是变量的引用而不是 变量所引用的实体。 如果改变参数变量所引用的实体,就会导致原变量的实体发生同样的变化。但是,改变参数的引用不 会影响向其传值的变量的引用。 4.4 static 关键字 用 static 修饰的成员变量称为类变量 用 static 修饰的方法称为类方法 1.实例变量和类变量的区别 一个类通过使用 new 运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空 引用 实体 引用 引用型变量 引用型参数 传值
第15页《Java2实用教程》第四版备课笔记间,如果类中的成员变量有类变量,那么所有的对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其它对象的这个类变量。类变量是和该类创建的所有对象相关联的变量,改变其中一个对象的这个类变量就同时改变了其它对象的这个类变量。因此,类变量不仅可以通过某个对象访问也可以直接通过类名访问。实例变量仅仅是和相应的对象关联的变量,也就是说,不同对象的实例变量互不相同,即分配不同的内存空间,改变其中个对象的实例变量不会影响其它对象的这个实例变量。实例变量可以通过对象访问,不能使用类名访问。class Takecare1static int x,inty,3Class A1Takecare Al=newTakecareO;TakecareA2=newTakecare();3A2A1X0OXAB50X325Y0Y2.实例方法和类方法的区别实例方法可以被类创建的任何对象调用执行。类方法不仅可以被类创建的任何对象调用执行,也可以直接通过类名调用。4.5this关键字this是Java的一个关键字,表示某个对象。this可以出现在实例方法和构造方法中,但不可以出现在类方法中。this关键字出现在类的构造方法中时,代表使用该构造方法所创建的对象。this关键字出现在类的实例方法中时,代表正在调用该方法的当前对象。4.6包包是Java语言中有效地管理类的一个机制。1.包语句通过关键字package声明包语句。package语句作为Java源文件的第一条语句,指明该源文件定义的类所在的包。package语句的一般格式为:package包名;如果源程序中省略了package语句,源文件中你定义命名的类被隐含地认为是无名包的一部分,即源文件中定义命名的类在同一个包中,但该包没有名字。包名可以是一个合法的标识符,也可以是若干个标识符加""分割而成。2.import语句使用import语句可以引入包中的类。在编写源文件时,除了自已编写类外,我们经常需要使用Java提供的许多类,这些类可能在不同的包中。在学习Java语言时,使用已经存在的类,避免一切从头做起,这是面向对象编程的一个重要方面。4.7访问权限类创建了一个对象之后,该对象可以通过“”运算符操作自已的变量、使用类中的方法,但对象操作自已的变量和使用类中的方法是有一定限制的。所谓访问权限是指对象是否可以通过“”运算符操作自已的变量或通过"运算符使用类中的方法。访间限制修饰符有private、protected和public,都是Java的关键字,用来修饰成员变量或方法。1.私有变量和私有方法
《Java2 实用教程》第四版备课笔记 第 15 页 间,如果类中的成员变量有类变量,那么所有的对象的这个类变量都分配给相同的一处内存,改变其中一 个对象的这个类变量会影响其它对象的这个类变量。 类变量是和该类创建的所有对象相关联的变量,改变其中一个对象的这个类变量就同时改变了其它对 象的这个类变量。因此,类变量不仅可以通过某个对象访问也可以直接通过类名访问。实例变量仅仅是和 相应的对象关联的变量,也就是说,不同对象的实例变量互不相同,即分配不同的内存空间,改变其中一 个对象的实例变量不会影响其它对象的这个实例变量。实例变量可以通过对象访问,不能使用类名访问。 class Takecare { static int x; int y; } Class A { Takecare A1=new Takecare(); Takecare A2=new Takecare(); } 2.实例方法和类方法的区别 实例方法可以被类创建的任何对象调用执行。 类方法不仅可以被类创建的任何对象调用执行,也可以直接通过类名调用。 4.5 this 关键字 this 是 Java 的一个关键字,表示某个对象。 this 可以出现在实例方法和构造方法中,但不可以出现在类方法中。 this 关键字出现在类的构造方法中时,代表使用该构造方法所创建的对象。 this 关键字出现在类的实例方法中时,代表正在调用该方法的当前对象。 4.6 包 包是 Java 语言中有效地管理类的一个机制。 1.包语句 通过关键字 package 声明包语句。package 语句作为 Java 源文件的第一条语句,指明该源文件定义的 类所在的包。package 语句的一般格式为: package 包名; 如果源程序中省略了 package 语句,源文件中你定义命名的类被隐含地认为是无名包的一部分,即源 文件中定义命名的类在同一个包中,但该包没有名字。 包名可以是一个合法的标识符,也可以是若干个标识符加“.”分割而成 。 2. import 语句 使用 import 语句可以引入包中的类。 在编写源文件时,除了自己编写类外,我们经常需要使用 Java 提供的许多类,这些类可能在不同的包 中。 在学习 Java 语言时,使用已经存在的类,避免一切从头做起,这是面向对象编程的一个重要方面。 4.7 访问权限 类创建了一个对象之后,该对象可以通过“.”运算符操作自己的变量、使用类中的方法,但对象操作自 己的变量和使用类中的方法是有一定限制的。 所谓访问权限是指对象是否可以通过“.”运算符操作自己的变量或通过“.”运算符使用类中的方法。 访问限制修饰符有 private、protected 和 public,都是 Java 的关键字,用来修饰成员变量或方法。 1.私有变量和私有方法 0X325 0 0 0XAB5 0 A1 X Y A2 Y