java程序设计教学教案课件04-2.ppt
《java程序设计教学教案课件04-2.ppt》由会员分享,可在线阅读,更多相关《java程序设计教学教案课件04-2.ppt(73页珍藏版)》请在三一文库上搜索。
1、第四章 类、对象和接口,4.2 对象,类是创建对象的模板 创建对象: 对象的声明 为对象分配内存,4.2 对象,1、对象的声明: 格式:类的名字 对象名字; 如:People zhangPing;,4.2 对象,2、为声明的对象分配内存: 使用new运算符和类的构造方法为声明的对象分配内存,如果类中没有构造方法,系统会调用默认的构造方法(默认的构造方法是无参数的)。 如:zhangPing=new People();,4.2 对象,class XiyoujiRenwu float height,weight; String head,ear,hand,foot,mouth; void spea
2、k(String s) System.out.println(s); class A public static void main(String args ) XiyoujiRenwu zhubajie; /声明对象 zhubajie=new XiyoujiRenwu(); /为对象分配内存,使用new运算符和默认的构造方法 ,例:1,4.2 对象,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和
3、p2。 p1=new Point(10,10); /为对象分配内存,使用 new 和类中的构造方法。 p2=new Point(23,35); /为对象分配内存,使用 new 和类中的构造方法。 ,例:2,练习,用课本P45 类梯形创建一个名为“tx”的对象,4.2 对象,3、对象的内存模型: 声明对象时的内存模型 声明对象变量后,变量内存无数据,是空对象,不能使用 如:XiyoujiRenwu zhubajie;,zhubajie,4.2 对象,3、对象的内存模型: 对象分配内存后的内存模型 为成员变量分配内存 返回一个应用给对象变量 如 zhubajie=new XiyoujiRenwu(
4、);,0.0,0.0,null,null,null,null,null,0xAB12,zhubajie,weight,height,head,ear,mouth,hand,foot,4.2.2 使用对象,使用运算符 “.” ,对象实现对自己的变量访问和方法的调用 对象操作自己的变量(对象的属性) 对象创建后,就有自己的变量。通过使用运算符“.”对象实现对自己变量的访问。 对象调用类中的方法(对象的功能) 采用“.”调用创建它的类中的方法。 当对象调用类中的一个方法时,方法中的局部变量被分配到内存空间,4.2.2 使用对象,class XiyoujiRenwu float height,weig
5、ht; String head, ear,hand,foot,mouth; void speak(String s) head=“歪着头“; System.out.println(s); public class Example public static void main(String args) XiyoujiRenwu zhubajie,sunwukong;/声明对象。 zhubajie=new XiyoujiRenwu();/为对象分配内存,使用new 运算符和默认构造方法。 sunwukong=new XiyoujiRenwu(); zhubajie.height=1.80f; /
6、对象给自己的变量赋值。,zhubajie.weight=160f; zhubajie.hand=“两只黑手“; zhubajie.foot=“两只大脚“; zhubajie.head=“大头“; zhubajie.ear=“一双大耳朵“; zhubajie.mouth=“一只大嘴“; sunwukong.height=1.62f; /对象给自己的变量赋值。 sunwukong.weight=1000f; sunwukong.hand=“白嫩小手“; sunwukong.foot=“两只绣脚“; sunwukong.head=“绣发飘飘“; sunwukong.ear=“一对小耳“; sunwu
7、kong.mouth=“樱桃小嘴“; 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现在的头:“+zhu
8、bajie.head); sunwukong.speak(“老孙我重1000斤,我想骗八戒背我“); /对象调用方法。 System.out.println(“sunwukong现在的头:“+sunwukong.head); ,4.2.2 使用对象,类中的方法可以操作成员变量,当对象调用该方法时,方法中出现的成员变量就是指该对象的成员变量。,练习,打印梯形的面积:(上底为2.0,下底为5.0,高为3.0) 用课本P45 梯形类,4.2.3 对象的应用和实体,当用类创建一个对象时,类中的成员变量被分配内存空间,这些内存空间被称作该对象的实体。 对象中存放着应用,确保实体由该对象操作使用。,4.2
9、.3 对象的应用和实体,如: Point p1=new Point(12,16); Point p2=new Point(6,18); p1=p2;,12,16,6,18,0xAB28,0xDD,6,18,X,y,X,y,X,y,0xDD,0xDD,p1,p2,p2,p1,4.2.3 对象的应用和实体,例4: class 圆 double 半径; 圆(double r) 半径=r; double 计算面积() return 3.14*半径*半径; void 修改半径(double 新半径) 半径=新半径; double 获取半径() return 半径; ,4.2.3 对象的应用和实体,cla
10、ss 圆锥 圆 底圆; double 高; 圆锥(圆 circle,double h) this.底圆=circle; this.高=h; double 计算体积() double volume; volume=底圆.计算面积()*高/3.0; return volume; void 修改底圆半径(double r) 底圆.修改半径(r); double 获取底圆半径() return 底圆.获取半径(); ,4.2.3 对象的应用和实体,class Example public static void main(String args) 圆 circle=new 圆(10); 圆锥 circ
11、ular=new 圆锥(circle,20); System.out.println(“圆锥底圆半径:“+circular.获取底圆半径(); System.out.println(“圆锥的体积:“+circular.计算体积(); circular.修改底圆半径(100); System.out.println(“圆锥底圆半径:“+circular.获取底圆半径(); System.out.println(“圆锥的体积:“+circular.计算体积(); ,4.3 static关键字,1、实例变量和类变量的区别 不同对象的实例变量将被分配不同的内存空间,如果类中的成员变量有类变量,那么所有
12、对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其它对象的这个类变量。 也就是说对象共享类变量,4.3 static关键字,例子5 class 梯形 float 上底,高; static float 下底; /类变量。 梯形(float 上底,float 高) this.上底=上底; this.高=高; float 获取上底() return 上底; float 获取下底() return 下底; ,4.3 static关键字,class Example4_5 public static void main(String args) 梯形 laderOne,lader
13、Two; /梯形的字节码被加载到内存。 梯形.下底=60; /通过类名操作类变量。 laderOne=new 梯形(18.0f,20); laderTwo=new 梯形(9.0f,10); System.out.println(“laderOne的上底:“+laderOne.获取上底(); System.out.println(“laderOne的下底:“+laderOne.获取下底(); System.out.println(“laderTwo的上底:“+laderTwo.获取上底(); System.out.println(“laderTwo的下底:“+laderTwo.获取下底(); ,
14、4.3 static关键字,2、实例方法和类方法的区别 当类的字节码文件被加载到内存时,类的实例方法不会被分配入口地址,当该类创建对象后,类中的实例方法才分配入口地址,从而实例方法可以被类创建的任何对象调用执行。 类中的类方法,在该类被加载到内存时,就分配了相应的入口地址。,4.4 this关键字,1、this关键字可以出现在类的实例方法中,代表使用该方法的当前对象。 2、this关键字出现在类的构造方法中,代表使用该构造方法所创建的对象。 实例方法可以操作类的成员变量。 格式:this.成员变量,4.4 this关键字,如: class A int x; void f() this.x=10
15、0; /此例子没有同名的成员变量和局部变量,this可以省略,4.4 this关键字,如: class B void f() this.g(); void g() System.out.println(“OK”); /此例子中this代表使用方法f的当前对象,方法发f的方法体中this.g()就是当前对象调用方法g. 一个方法调用另一个方法时可以省略方法名字前面的this,4.5 包,1、包语句 通过关键字package声明包语句。package作为Java源文件的第一条语句。 package语句的一般格式: package 包名; 如: package sunrise; package ;,
16、4.5 包,如果源程序中省略了package语句,源文件所定义命名的类被隐含地认为是无名包的一部分即源文件中定义命名的类在同一个包中,但该包没有名字。,4.5 包,程序如果使用了包语句,就必须有相应的目录结构。 如: package tom.jafei; 则目录结构必须包含如下结构: tomjiafei,4.5 包,例6:,package tom.jiafei; public class Example4_6 public static void main(String args) System.out.println(“我有包名“); ,4.5 包,2、 import语句 使用import语
17、句可以引入包中的类。 在一个java源程序中可以有多个import语句,他们必须写在package语句和源文件中的类的定义之间,4.5 包,2、 import语句 Java提供的包有很多,约130多个 如: java. applet 包含所有实现java applet的类 java.awt 包含抽象窗口工具集中的图形、文本、窗口GUI类 java.awt.image 包含抽象窗口工具集中的图像处理类 java.lang 包含所有基本语言类 java.io 包含所有的输入/输出类 包含所有实现网络功能的类 java.until 包含有用的数据类型类,4.5 包,引入类: 如果要引入一个包中的全
18、部类,则可以用星号来代替 如:import java.awt.*; 只引入一个确定的类,则直接写明引用 如:import java.until.Date,4.5 包,例7:,import java.applet.Applet; import java.awt.*; public class Example extends Applet Button redbutton; public void init() redbutton=new Button(“我是一个红色的按钮“); redbutton.setBackground(Color.red); add(redbutton); public
19、void paint(Graphics g) g.drawString(“it is a button“,30,50); ,例8,import tom.jiafei.*; class Example4_8 public static void main(String args) Trangle trangle=new Trangle(12,3,1); trangle.计算面积(); trangle.修改三边(3,4,5); trangle.计算面积(); ,4.6 访问权限,1.私有变量和私有方法 2.共有变量和共有方法 3.友好变量和友好方法 4.受保护成员变量和方法 5.public类与友
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 程序设计 教学 教案 课件 04
链接地址:https://www.31doc.com/p-3481885.html