◇ 方法体 方法体是对方法的实现,它包括局部变量的声明以及所有合法的Java指令。方法体中声明的局部变量的作用域在该方法内部。若局部变量与类的成员变量同名,则类的成员变量被隐藏。 例3-2 说明了局部变量z和类成员变量z的作用域是不同的。 【例3-2】 import java.io.*; class Variable{ int x="0",y=0,z=0; //类的成员变量 void init(int x,int y) { this.x=x; this.y=y; int z="5"; //局部变量 System.out.println("** in init**"); System.out.println("x="+x+" y="+y+" z="+z); } } public class VariableTest{ public static void main(String args[]){ Variable v="new" Variable(); System.out.println("**before init**"); System.out.println("x="+v.x+" y="+ v.y+" z="+v.z); v.init(20,30); System.out.println("**after init**"); System.out.println("x="+v.x+ " y="+ v.y+" z="+v.z); } } 上例中我们用到了this,这是因为init()方法的参数名与类的成员变量x,y的名字相同,而参数名会隐藏成员变量,所以在方法中,为了区别参数和类的成员变量,我们必须使用this。this-----用在一个方法中引用当前对象,它的值是调用该方法的对象。返回值须与返回类型一致,或者完全相同,或是其子类。当返回类型是接口时,返回值必须实现该接口。 5.方法重载 方法重载是指多个方法享有相同的名字,但是这些方法的参数必须不同,或者是参数的个数不同,或者是参数类型不同。返回类型不能用来区分重载的方法。 参数类型的区分度一定要足够,例如不能是同一简单类型的参数,如int与long。 【例3-3】 import java.io.*; class MethodOverloading{ void receive(int i) { System.out.println("Receive one int data"); System.out.println("i="+i); } void receive(int x, int y) { System.out.println("Receive two int datas"); System.out.println("x="+x+" y="+y); } } public class MethodOverloadingTest{ public static void main(String args[]) { MethodOverloading mo="new" MethodOverloading(); mo.receive(1); mo.receive(2,3); } } 6. 构造方法 ◇ 构造方法是一个特殊的方法。Java 中的每个类都有构造方法,用来初始化该类的一个对象。 ◇ 构造方法具有和类名相同的名称,而且不返回任何数据类型。 ◇ 重载经常用于构造方法。 ◇ 构造方法只能由new运算符调用 【例3-4】 class Point{ int x,y; Point(){ x=0; y="0"; } Point(int x, int y){ this.x=x; this.y=y; } } 3.2.2 对象 1. 对象的生成 ◇ 实例化:运算符new为对象分配内存空间,它调用对象的构造方法,返回引用;一个类的不同对象分别占据不同的内存空间。
1. 封装性 java语言中,对象就是对一组变量和相关方法的封装,其中变量表明了对象的状态,方法表明了对象具有的行为。通过对象的封装,实现了模块化和信息隐藏。通过对类的成员施以一定的访问权限,实现了类中成员的信息隐藏。
◇ java类中的限定词 |
文章评论(0条评论)
登录后参与讨论