[其它]六、java.ppt

上传人:音乐台 文档编号:2001743 上传时间:2019-01-30 格式:PPT 页数:36 大小:254.50KB
返回 下载 相关 举报
[其它]六、java.ppt_第1页
第1页 / 共36页
[其它]六、java.ppt_第2页
第2页 / 共36页
[其它]六、java.ppt_第3页
第3页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[其它]六、java.ppt》由会员分享,可在线阅读,更多相关《[其它]六、java.ppt(36页珍藏版)》请在三一文库上搜索。

1、第六章,面向对象的程序设计概念,一、面向对象的基本概念,符合人们日常自然的思维习惯; 降低、分解问题的难度和复杂性,提高整个求解过程的可控制性、可监视性和可维护性; 获得较高效率和较满意效果。,面向对象程序设计:,对象与类,简单地说: 对象是表示现实世界中某个具体的事物; 类是对对象的抽象描述。,二、类(class)的概念,类:是一种抽象的数据类型,它是所有具有一定共性的对象的抽象。本质上可以认为是对对象的描述,使创建对象的“模板”。 类的某一个对象则被称为是类的一个实例,是类的实例化结果。,实例化,抽象,面向对象方法的主要优点,与人类习惯的思维方法一致 可重用性性 可扩展性 可管理性,三、类

2、的声明,Java是一种纯面向对象的程序设计语言,每个程序中至少包含一个类。所有数据和操作都封装在类中。类要先声明,后使用。 修饰符 class 类名 extends 父类 implements 接口名 类成员变量声明; 类方法声明; ,类的定义注意事项,说明:,类定义由类声明和类主体组成。,类主体: 1、成员变量:与变量的定义类似,通常在其类型名前加访问权限修饰符(public,private, protected)。 2、成员方法:和以前C语言的函数类似。有方法的声明和方法体组成。类似第4章中方法的声明。,class是定义类的关键字, 中的内容是可选的内容. 类名要符合标识符的定义,最好做到

3、见名知义.注意类名的第一字母大写。 “extends 父类”说明目前定义的类是从父类继承而来的子类.注意:该父类必须存在. “implements 接口名”说明目前定义的类要实现某个接口.注意:该接口必须有定义. 修饰符的具体用法将在本章后面内容中介绍。,Java实例 定义类,class Point private int x,y; public void setPoint(int a,int b) x=a; y=b; public int getX() return x; public int getY() return y; public String toString() return

4、“+x+“,“+y+“; ,四、对象的创建和使用,修饰符 类名 对象名=new 类名(实参列表); 或 修饰符 类名 对象名; 对象名=new 类名(实参列表);,类就像int,char等数据类型一样,是对事物的抽象。在程序中必须创建类的实例,即对象。对象的创建包括声明和实例化两项工作。,创建对象,例: Point thePoint; 注意:类属于复合数据类型,因此,在声明对象时,系统并没有为对象分配空间,用户需要应用new完成分配空间的任务。 thePoint=new Point( );,对象的引用,引用成员变量 对象名.成员变量名 引用方法 对象名.方法名(参数列表),创建一个对象后,这个

5、对象就拥有所属类的成员变量和方法,就可以引用该对象的成员变量,调用其成员方法。,Java实例 创建对象,续前例: public class PointExcise public static void main(String args) Point thePoint=new Point(); thePoint.setPoint(3,5); System.out.println(“坐标x=”+ thePoint.getX(); System.out.println(“坐标y=”+ thePoint.getY(); System.out.println(thePoint.toString(); ,

6、对象的初始化,类中包含有成员变量和方法,当使用类声明并创建对象时,使用new关键字,这时系统为对象创建自己的内存区域并自动调用构造方法初始化成员变量。,构造方法,构造方法是一个特殊的成员方法,它与类名相同。在创建对象空间后,系统自动根据参数调用相应的构造函数。构造函数的主要功能是为数据成员赋初值。,构造方法的特点,构造方法名与类名相同; 构造方法没有返回类型,也不是void; 构造方法的主要作用是对类对象的初始化。如果没有定义构造方法时,各种类型的默认值; 注意:无论使用何种“构造方法”,只要未特别指定初始值的“成员变量”,其值都会自动初始化0,false,null。 构造方法不能由编程人员显

7、式地直接调用; 使用不同数量、不同类型的参数对类初始化会拥有多个构造方法;,例子Example303,由此可见,构造方法与其他成员方法的不同之处: (1)作用不同:构造方法仅用于实例化对象,对成员变量进行初始化;成员方法用于对成员变量进行多种操作。 (2)调用方式不同:构造方法通过new运算符调用;成员方法通过对象调用。,Java实例 定义构造方法,class Student String name; String address; String grade; Student(String x1,String x2,String x3,int y) /定义构造方法 name=x1; addre

8、ss=x2; grade=x3; ,public static void main(String args) Student zhang; /声明并创建zhang对象 zhang=new Student(“张三“,“西安市兴庆路1号“,“2003级国际贸易3班“); Student wang; /声明并创建wang对象 wang=new Student(“王五“,“西安市翠华路12号“,“2003级电子技术3班“); System.out.println(zhang.name+zhang.address+zhang.grade); System.out.println(wang.name+wa

9、ng.address+wang.grade); ,Java实例(续),使用new创建对象时,Java系统自动调用与类同名的构造方法。,Java实例 类为方法参数,class Position private int X,Y; Position(int x,int y) X=x; Y=y; public int getX() return X; public int getY() return Y; public double distance(Position a,Position b) /计算两个Position对象a,b两点的距离 return Math.sqrt(a.getX()-b.g

10、etX()*(a.getX()-b.getX() +(a.getY()-b.getY()*(a.getY()-b.getY(); /计算距离的公式 ,Java实例(续),public static void main(String args) int x1,x2,y1,y2; double dis; Position source=new Position(0,0); /创建Position对象source Position target=new Position(5,8); /创建Position对象target x1=source.getX(); y1=source.getY(); x2=

11、target.getX(); y2=target.getY(); System.out.println(“第一个点的坐标位置为(“+x1+“,“+y1+“)“); System.out.println(“第二个点的坐标位置为(“+x2+“,“+y2+“)“); dis=source.distance(source,target); System.out.println(“两个点的距离是:“+dis); ,类的封装,类中包含有一个或多个成员变量和方法; 定义的public的方法是这个类对外的接口部分,通过调用它们可以与当前类交换信息; 通过接口部分修改类中某些属性,从而避免直接修改类中的数据,这

12、体现了数据封装思想; 封装机制就是类包含有成员变量和方法,类的设计者为用户提供类对象可以访问的部分,而对于类中的其他成员变量和方法隐藏起来,用户无法访问。,封装特性,在类的定义中设置对对象中的成员变量和方法进行访问的权限; 提供一个统一供其他类引用的访问; 其它对象不能直接修改本对象所拥有的属性和方法。,访问控制修饰符,访问控制符是一组起到限定类、属性或方法被程序里的其他部分访问和调用的修饰符。 类:public、缺省 属性和方法:public、private、protected、private protected、缺省,public(公有),若类声明为public,则表明这个类可以被所有的其

13、他类访问和引用,即只要其他包中的类在程序中使用import语句引入public类,就可以访问这个类内部的可见的成员变量、调用可见的方法。 若成员变量声明为public,其他类的方法可以直接访问它,但这样破坏了封闭性 若方法声明为public,其他类可以直接调用这个方法,这样的方法往往作为操作类对象的接口,private,用private修饰的属性和方法只能被类自身访问和修改,而不能被任何其他类(包括子类)获取和引用。应该将不希望他人随意引用或修改的属性设置成private,以此将它们隐藏起来,从而实现面向对象的程序设计思想。,protected,用protected修饰的成员变量可以被三种类所

14、引用: 该类自身 同一个包中的其他类 在其他包中的该类的子类 作用: 允许存在其他包中该类的子类访问其父类的特定属性。,缺省(friendly),若没有设置访问控制符,则说明该类、属性或方法具有缺省访问控制权限。这样的类、成员变量和方法只能被同一个包中的其他类访问和引用,因此,我们又将其称为包访问性。,Java实例 类、成员变量、方法的引用,class StudentsScore public static int passPoint=350; private String studentId; private String name; private int score; public St

15、udentsScore(String studentId,String name,int score) this.studentId=studentId; this.name=name; this.score=score; public int getScore() return score; public String getName() return name; ,Java实例(续),class TestClient public static void main(String args) StudentsScore student1= new StudentsScore(“2001010

16、1“,“zhang3“,560); if(student1.getScore() -StudentsScore.passPoint=0) System.out.println(“greeing “+ student1. getName() + “ for pass this test“); else System.out.println(“Sorry ! “+student1. getName() + “ not pass this test“); ,访问控制权限控制小结,类成员,Java的类中可以包含两种成员:实例成员和类成员 类成员属于类的,类成员前需要使用static 修饰。通过类名可以

17、直接访问类成员变量、调用类成员方法。即使没有创建对象,也可以引用类成员。类成员也可以通过对象名引用。 实例成员是属于对象的,只有创建了对象之后,才能通过对象访问实例成员变量、调用实例成员方法。前面讨论的类中成员变量都是实例成员变量。,修饰符 static,static可以修饰类中的属性和方法。 静态属性在类定义时静态地分配空间。它属于类,不属于某个特定的对象,因此可以通过类进行访问。往往将属于类的公共属性说明成static。,Java实例 static成员变量,class StaticTest public int x=1; public static int y=1; public clas

18、s StaticTester public static void main(String args) int i; StaticTest.y= StaticTest.y +1; StaticTest m=new StaticTest(); StaticTest n=new StaticTest(); m.x= m.x +3; m.y= m.y+3; n.x= n.x+5; n.y= n.y+5; System.out.println(“m.x=“+m.x+“ “+ “m.y=“+m.y); System.out.println(“n.x=“+n.x+“ “+ “n.y=“+n.y); ,Ja

19、va实例 static方法,class Sta_method int width,height; public static double area(int width,int height) return width*height; public static void main(String args) int i,j; double f; i=Integer.parseInt(args0); j=Integer.parseInt(args1); f=Sta_method.area(i,j); /直接引用此方法 System.out.println(“Area=“+i+“*“+j+“=“+f); ,数学函数类 Math类库,格式: 类名.数学函数方法名(类型 实参1,类型 实参n )见书P90 例: public class Max public static void main(String args) int x,y; x=Integer.parseInt(args0); y= Integer.parseInt(args1); System.out.println(“最大值是“+Math.max(x,y); ,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1