≈佐

—— 有恒则成。

统计

最新评论

对象

2.对象
类是创建对象的模板.当使用一个类创建了一个对象时,也就是说给出了这个类的一个实例.
(1)对象的创建:包括对象的声明和为对象分配内存空间
声明格式: 类的名字 对象的名字;

分配内存空间格式; 类的名字 对象的名字=new 类的名字(); 例:

 

 1class XiyoujiRenwu
 2{
 3float height,weight;
 4String head, ear,hand,foot, mouth;
 5   void speak(String s)
 6   {
 7    System.out.println(s);
 8   }

 9}

10class A
11{
12public static void main(String args[])
13{
14   XiyoujiRenwu zhubajie; //声明对象
15   zhubajie=new XiyoujiRenwu(); //为对象分配内存,使用new 运算符和默认的构造方法
16}

17}


 

 1class XiyoujiRenwu
 2{
 3float height,weight;
 4String head, ear,hand,foot, mouth;
 5   void speak(String s)
 6   {
 7    System.out.println(s);
 8   }

 9}

10class A
11{
12public static void main(String args[])
13{
14   XiyoujiRenwu zhubajie; //声明对象
15   zhubajie=new XiyoujiRenwu(); //为对象分配内存,使用new 运算符和默认的构造方法
16}

17}


(2)对象的内存模型
声明对象时,内存不分配空间,只存在一个空对象;当用new 分配内存空间时,类中的成员变量就会被分配到相应的空

间中,并通过构造方法(如果有)初始化,函数的入口地址也会被载入内存.但此时局部变量不会被分配内存空间,只有

当对象调用类中的函数时,函数中的局部变量才被分配空间,但函数执行完后,局部变量释放内存,所以如果在函数中

没有对局部变量进行初始化,就没有默认值,因此在使用局部变量之前,要事先为其赋值.
创建多个对象之间没有相互状态影响,个用个自的内存空间.

(3)对象的使用
对象不仅可以改变自己变量的状态,而且还拥有了使用创建它的那个类中的方法的能力,对象通过使用这些方法可以产生一定的行为.通过使用运

算符" . "对象可以实现对自己的变量的访问和方法的调用.具体使用如程序例子:


 

 1class XiyoujiRenwu
 2{
 3float height,weight;
 4String head, ear,hand,foot,mouth;
 5void speak(String s)
 6{
 7   head="歪着头";
 8   System.out.println(s);
 9}

10}

11class Example4_3
12{
13public static void main(String args[])
14
15   XiyoujiRenwu zhubajie,sunwukong;//声明对象
16   zhubajie=new XiyoujiRenwu(); //为对象分配内存
17   sunwukong=new XiyoujiRenwu();
18   zhubajie.height=1.80f//对象给自己的变量赋值
19   zhubajie.head="大头"
20   zhubajie.ear="一双大耳朵";   
21   sunwukong.height=1.62f//对象给自己的变量赋值
22   sunwukong.weight=1000f; 
23   sunwukong.head="绣发飘飘";   
24   System.out.println("zhubajie的身高:"+zhubajie.height);  
25   System.out.println("zhubajie的头:"+zhubajie.head);
26   System.out.println("sunwukong的重量:"+sunwukong.weight);   System.out.println("sunwukong的
27
28头:"+sunwukong.head);
29   zhubajie.speak("俺老猪我想娶媳妇"); //对象调用方法    System.out.println("zhubajie现在的
30
31头:"+zhubajie.head);
32   sunwukong.speak("老孙我重1000斤,我想骗八戒背我"); //对象调用方法   System.out.println("sunwukong
33
34现在的头:"+sunwukong.head); 
35}

36}

 

 1class 梯形
 2{
 3float 上底,下底,高,面积;
 4梯形(float x,float y,float h)
 5{
 6   上底=x;
 7   下底=y;
 8   高=h;
 9}
 float 计算面积()
10{
11   面积=(上底+下底)*/2.0f;
12   return 面积;
13}

14void 修改高(float height)
15{
16   高=height;
17   }

18float 获取高()
19{
20   return 高;
21}

22}

23public class Example4_4
24{
25public static void main(String args[])
26{    梯形 laderOne=new 梯形(12.0f,3.5f,50),laderTwo=new 梯形(2.67f,3.0f,10);
27   System.out.println("laderOne的高是:"+laderOne.获取高());
28   System.out.println("laderTwo的高是:"+laderTwo.获取高());
29   System.out.println("laderOne的面积是:"+laderOne.计算面积());
30   System.out.println("laderTwo的面积是:"+laderTwo.计算面积());
31   laderOne.修改高(10);
32   float h=laderOne.获取高();
33   laderTwo.修改高(h*2);
34   System.out.println("laderOne现在的高是:"+laderOne.获取高());
35   System.out.println("laderTwo现在的高是:"+laderTwo.获取高());
36   System.out.println("laderOne现在的面积是:"+laderOne.计算面积());
37    System.out.println("laderTwo现在的面积是:"+laderTwo.计算面积());
38}

39}

posted on 2008-09-21 08:30 ≈佐 阅读(115) 评论(0)  编辑  收藏 所属分类: J2SE 知识