JAVA基础教程(4)
3685 点击·0 回帖
![]() | ![]() | |
![]() | 2.对象 类是创建对象的模板.当使用一个类创建了一个对象时,也就是说给出了这个类的一个实例. (1)对象的创建:包括对象的声明和为对象分配内存空间 声明格式:类的名字 对象的名字; 分配内存空间格式;类的名字 对象的名字=new 类的名字(); 例: 复制代码 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,p3; //声明对象p1和p2 p1=new Point(10,10); //为对象分配内存,使用 new 和类中的构造方法 p2=new Point(23,35); //为对象分配内存,使用 new 和类中的构造方法 // p3=new Point(); 错误语句!当类中定义了一个或多个构造方法,那么java不提供默认的构造方法 } } (2)对象的内存模型 声明对象时,内存不分配空间,只存在一个空对象;当用new 分配内存空间时,类中的成员变量就会被分配到相应的空间中,并通过构造方法(如果有)初始化,函数的入口地址也会被载入内存.但此时局部变量不会被分配内存空间,只有当对象调用类中的函数时,函数中的局部变量才被分配空间,但函数执行完后,局部变量释放内存,所以如果在函数中没有对局部变量进行初始化,就没有默认值,因此在使用局部变量之前,要事先为其赋值. 创建多个对象之间没有相互状态影响,个用个自的内存空间. (3)对象的使用 对象不仅可以改变自己变量的状态,而且还拥有了使用创建它的那个类中的方法的能力,对象通过使用这些方法可以产生一定的行为. 通过使用运算符" . "对象可以实现对自己的变量的访问和方法的调用.具体使用如程序例子: 复制代码 class XiyoujiRenwu { float height,weight; String head, ear,hand,foot,mouth; void speak(String s) { head="歪着头"; System.out.println(s); } } class Example4_3 { public static void main(String args[]) { XiyoujiRenwu zhubajie,sunwukong;//声明对象 zhubajie=new XiyoujiRenwu(); //为对象分配内存 sunwukong=new XiyoujiRenwu(); zhubajie.height=1.80f; //对象给自己的变量赋值 zhubajie.head="大头"; zhubajie.ear="一双大耳朵"; sunwukong.height=1.62f; //对象给自己的变量赋值 sunwukong.weight=1000f; sunwukong.head="绣发飘飘"; System.out.println("zhubajie的身高:"+zhubajie.height); System.out.println("zhubajie的头:"+zhubajie.head); System.out.println("sunwukong的重量:"+sunwukong.weight); System.out.println("sunwukong的头:"+sunwukong.head); zhubajie.speak("俺老猪我想娶媳妇"); //对象调用方法 System.out.println("zhubajie现在的头:"+zhubajie.head); sunwukong.speak("老孙我重1000斤,我想骗八戒背我"); //对象调用方法 System.out.println("sunwukong现在的头:"+sunwukong.head); } } 复制代码 class 梯形 { float 上底,下底,高,面积; 梯形(float x,float y,float h) { 上底=x; 下底=y; 高=h; } float 计算面积() { 面积=(上底+下底)*高/2.0f; return 面积; } void 修改高(float height) { 高=height; } float 获取高() { return 高; } } public class Example4_4 { public static void main(String args[]) { 梯形 laderOne=new 梯形(12.0f,3.5f,50),laderTwo=new 梯形(2.67f,3.0f,10); System.out.println("laderOne的高是:"+laderOne.获取高()); System.out.println("laderTwo的高是:"+laderTwo.获取高()); System.out.println("laderOne的面积是:"+laderOne.计算面积()); System.out.println("laderTwo的面积是:"+laderTwo.计算面积()); laderOne.修改高(10); float h=laderOne.获取高(); laderTwo.修改高(h*2); System.out.println("laderOne现在的高是:"+laderOne.获取高()); System.out.println("laderTwo现在的高是:"+laderTwo.获取高()); System.out.println("laderOne现在的面积是:"+laderOne.计算面积()); System.out.println("laderTwo现在的面积是:"+laderTwo.计算面积()); } } static的用法和包 | |
![]() | ![]() |