面向对象编程基础 理论讲解

上传人:woxinch****an2018 文档编号:53927544 上传时间:2018-09-06 格式:PPT 页数:75 大小:768KB
返回 下载 相关 举报
面向对象编程基础 理论讲解_第1页
第1页 / 共75页
面向对象编程基础 理论讲解_第2页
第2页 / 共75页
面向对象编程基础 理论讲解_第3页
第3页 / 共75页
面向对象编程基础 理论讲解_第4页
第4页 / 共75页
面向对象编程基础 理论讲解_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《面向对象编程基础 理论讲解》由会员分享,可在线阅读,更多相关《面向对象编程基础 理论讲解(75页珍藏版)》请在金锄头文库上搜索。

1、,面向对象编程基础,本部分重点 JAVA语言的类 对象 继承 多态 接口 JAVA小应用程序基础,对象的特征属性,属性对象具有的各种特征,用变量来存储每个对象的每个属性都拥有特定值 例如:王小红和朱小雨的体重不一样,体重:60kg,姓名:王小红,属性,年龄:35岁,对象的特征方法,方法对象执行的操作,描述对象的行为,打单,收银,方法,刷卡,类:从对象抽取出类,顾客类 轿车类,类概括了同类对象共有的性质:属性和方法,类是对象的类型 不同于int类型:具有方法,各种口味的球状冰淇淋,球状冰淇淋模子,类和对象有什么区别呢?,类是模板,比如说:“人” 对象是类的一个实例,比如:“小布什”,小布什,普京

2、,克林顿,Java类模板,class 类名 /成员变量部分变量声明1;变量声明2;变量声明n;/定义方法部分方法1;方法2;方法m; ,Java类的例子,public class Circle private double radius;/ 成员变量radius代表圆的半径/构造方法,用来初始化新对象public Circle(double radius) this.radius = radius;/ 取得圆的半径public double getRadius() return radius;/设置圆的半径public void setRadius(double radius) this.ra

3、dius = radius;/计算圆的面积public double getArea()return Math.PI * radius * radius; ,成员变量,public class Circle private double radius;/构造方法,用来初始化新对象public Circle(double radius) this.radius = radius;/ 取得圆的半径public double getRadius() return radius;/设置圆的半径public void setRadius(double radius) this.radius = radi

4、us;/计算圆的面积double getArea()return Math.PI * radius * radius; ,修饰符 类型 变量名 = 初值;,成员变量在所在类的所有方法中都是有效的,成员变量可以和局部变量重名, 这时访问成员变量要使用this.成员变量名,P42,方法,double getArea()return Math.PI * radius * radius; ,返回类型,方法名称,(类型 参数名,类型 参数名),非void方法中,return语句是必需的! void方法可以没有return语句,也可以有不带任何值的return语句, 仅用于终止方法,返回调用处,P42,方

5、法重载,public class TestMethodOverloading public static void main(String args) System.out.println(max(3, 4); System.out.println(max(3.0, 5.4); System.out.println(max(3.0, 5.4, 10.14); public static int max(int num1, int num2) if (num1 num2) return num1; else return num2; public static double max(double

6、 num1, double num2) if (num1 num2) return num1; else return num2; public static double max(double num1, double num2, double num3) return max(max(num1, num2), num3); ,同一个类中的两个或多个 方法具有相同的名称, 但有不同的参数列表。Java 使用参数的类型、 数量和顺序决定实际调用 重载方法的哪个版本,11,什么是构造方法,构造方法负责对象成员的初始化工作,为成员变量赋予合适的初始值 构造方法必须满足以下语法规则: 1、方法名与类

7、名相同 2、没有返回类型,没有void,public class Circle private double radius; public Circle(double radius) this.radius = radius; ,public class Test public static void main(String args) Circle c1 = new Circle(2);/创建Circle对象,半径是2Circle c2 = new Circle(5); /创建Circle对象,半径是5 ,使用new关键字调用构造方法,创建对象,P43,什么是构造方法,class Welco

8、mepublic static void main(String args)System.out.println(“welcome to Java!”); ,这个类有构造方法吗? 如何创建一个Welcome对象?,类可以不声明构造方法,在这种情况下,类中隐含地声明了一个 方法体为空的无参构造方法,这个构造方法称为默认构造方法。只有当类中 没有明确声明构造方法时,默认构造方法才会自动生成。创建Welcome对象: Welcome w = new Welcome();/调用无参构造方法创建对象,如何创建对象,1、声明变量:类名 对象名;2、使用new创建对象: new 构造方法(实参)3、两个步骤

9、同时:类名 对象名 = new 构造方法(实参);,c1 = new Circle(5); c2 = new Circle(6);,Circle c1; Circle c2;,Circle c1 = new Circle(5); Circle c2 = new Circle(6);,P44,Java语言将数据类型分成两类: 基础数据类型:byte,short,int,long,float,double,boolean,char 引用类型:类、数组、接口基础数据类型变量存放的是数据值 int i = 10; int j = 12;引用变量包含对象或者数组的引用地址 Circle c ; c =

10、new Circle(5.0);,对象的内存模型,0x34AC0,c:,radius:,Circle对象,内存地址0x34AC0,5.0,对象的内存模型,Circle c1 = new Circle(5); Circle c2 = new Circle(6); c1 = c2;,c1:,0x34AB6,c2:,radius:,Circle对象,内存地址0x34AC0,5.0,radius:,Circle对象,内存地址0x34AB6,6.0,如果一个对象没有任何引用指向它,该对象就成为无用对象(半径为5的圆), 可以被垃圾回收,Java虚拟机会自动回收无用对象,释放空间,0x34AC0,0x34

11、AB6,无用对象,垃圾,使用对象,使用对象的一般形式: 对象名.成员变量 对象名.方法名(实参),public class Test public static void main(String args) Circle c1 = new Circle(2);/创建Circle对象,半径是2Circle c2 = new Circle(5); /创建Circle对象,半径是5double area = c1.getArea();System.out.println(“c1的面积是:” + area);System.out.println(“c2的半径是:” + c2.getRadius();

12、,P45,类的包含关系,class B int b1;int b2;B(int x,int y)b1 = x;b2 = y;void write()System.out.print (“B类的输出!”); ,class A B b;int a;A(int x,int y,int z)b = new B(x,y);a = z;b.write(); ,class Example public static void main(String args) A obj = new A(1,2,3); ,P57,this关键字,this指的是当前对象,this的用途有下面三种: 在实例方法或构造方法内部引

13、用成员变量 在实例方法或构造方法内部调用方法 在构造方法内部调用本类的其它构造方法,P57,使用this引用成员变量,public class Circle private double radius;public Circle(double radius) this.radius = radius;public double getRadius() return radius;public void setRadius(double radius) this.radius = radius;double getArea()return Math.PI * radius * radius; ,

14、因为参数和成员变量重名, 这里使用this.radius表示 成员变量radius,实例成员变量前面隐含this 一般省略,这里相当于: Math.PI*this.radius*this.radius,P56,使用this调用本类的方法,public class Circle private double radius;public Circle(double radius) this.setRadius();public double getRadius() return radius;public void setRadius(double radius) this.radius = ra

15、dius;double getArea()return Math.PI * radius * radius; ,实例方法前面隐含this,一般省略,P56,this调用构造方法,public class Circle private double radius;public Circle()this(1.0);public Circle(double radius) this.radius = radius;public double getArea()return Math.PI * radius * radius; ,调用本类的其他构造方法 不能使用构造方法名称,例如Circle(1.0) 只能使用this(实参) this必须是构造方法第一句,P57,public class Rectangle int x, y, width, height; public Rectangle(int w, int h) this(1, 1, w, h); /必须写在第一句/Rectangle(1,1,w,h); its wrong public Rectangle(int x, int y, int w, int h) this.x = x; this.y = y; this.width = width; this.height = height; ,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 法律文献 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号