三章节对象与类.ppt
《三章节对象与类.ppt》由会员分享,可在线阅读,更多相关《三章节对象与类.ppt(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、三章节对象与类 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望3.1 3.1 定义类定义类n传统程序设计语言的不足 数据和对数据的操作相分离 n面向对象设计的思想n什么是对象 一切都是对象n对象与类的关系 类是对象的模版,对象是类的实例3.2 3.2 定义类定义类 类是组成程序的基本单元,定义了自己的类就是定义了要使用的对象的类型。例:定义一个汽车类:例:定义一个汽车类:class Car int color;int door;int speed;void sta
2、rt()void brake()声明一个汽车类的引用变量:Car myCar;声明类的语法:修饰符 class 类名称 /成员变量 /方法JavaJava基本数据类型基本数据类型Java数据类型包括基本数据类型和引用类型包装器类型把基本数据类型数据“包装”成对象 从 int类型创建一个Integer对象:int myInt;Integer myInteger=new Integer(myInt);从包装对象中取出基本类型值:myInt=myInteger.intValue();JavaJava基本数据类型基本数据类型第一个第一个JavaJava程序程序 程序3.1 Rectangle.java
3、class Rectangle int a,b;int getArea()return a*b;void locate(int x,int y)System.out.println(The position s(+x+,+y+);public static void main(String args)Rectangle r1=new Rectangle();r1.locate(3,4);r1.a=2;r1.b=3;int area=r1.getArea();System.out.println(Area of r1 is:+area);第一个第一个JavaJava程序程序nmain方法是程序的
4、入口 n包含main方法的类是Java应用程序的主类 n一个Java源文件可以包含多个类,但同一个Java源文件只有主类可以声明为public nJava源文件的命名必须与主类同名 3.33.3成员变量的作用域成员变量的作用域n在Java中变量的作用域是由大括号组成的程序块决定n在不嵌套的程序块中可以多次声明相同变量 n在嵌套的程序块中不允许重复声明同名的变量n声明在方法中的变量为局部变量,与实例变量重名的局部变量会覆盖实例变量,其作用域为整个方法体。见程序3.2 TestScoping.java作用域举例作用域举例int x=1;int y=2/xy可用 /x可用y超出作用域合法的声明:in
5、t x=1;int x=2;不合法的嵌套声明:int x=1;int x=2;3.43.4方法重载方法重载方法重载(Overload)是指一个类中可以定义参数列表不同但名字相同的多个方法,调用时,会根据不同的参数列表来选择对应的方法。n重载的方法名字必须相同n重载的方法参数必须不同当一个重载方法被调用时,Java 用参数的类型和(或)数量来表明实际调用的重载方法的版本。每个重载方法的参数的类型和(或)数量必须是不同的。虽然每个重载方法可以有不同的返回 类型,但返回类型并不足以区分所使用的是哪个方法。当Java 调用一个重载方法时,参数与调用参数匹配的方法被执行。见程序3.3 TestOverl
6、oad.java 程序3.4 TestOverload1.java被重载的方法必须有不同的参数列表,前面例子区分重载方法的参数采用了或者数量不同,或者类型不同,参数顺序不同虽然也可以重载,但是容易产生歧义。例:程序3.5 TestOverload2.javapublic class TestOverload2 void print(int a,float b)System.out.println(Print int a and float b:+a+b);void print(float a,int b)System.out.println(Print float a and int b:+a
7、+b);public static void main(String args)TestOverload2 obj=new TestOverload2();obj.print(1,2);3.53.5创建对象创建对象n先声名引用变量 Rectangle r1;然后创建对象赋值给r1:r1=new rectangle();n声明引用变量的同时产生一个对象赋给它:Rectangle r1=new Rectangle();引用变量r1“代表”了一个矩形对象,我们就可以使用引用变量加句点形式访问对象的成员了 在Java中基本类型变量存储在栈的内存结构中 int x=10;boolean y=true;引
8、用型变量内储存着对象实例的地址声明两个矩形类引用变量r1、r2:Rectangle r1,r2;r1、r2没有指向任何对象实例,系统默认赋初值null 产生一个新对象实例并赋值给r1:r1=new rectangle();r2=r1;n在java中字符串类型数据是按照对象来处理的 n两种方式 显式和隐式创建nJava为了加快程序的执行速度,把隐式创建的字符串对象放在栈中一个特殊区域字符串池(String Pool)中,相同内容的字符串对象只保留一份。String str1=new String(“Hello java!”);String str2=”Hello Java!”程序3.6 Test
9、String.javapublic class TestString public static void main(String args)String str1=new String(Hello Java!);String str2=str1;String str3=Hello Java!;String str4=Hello Java!;System.out.println(str1=str2);System.out.println(str1=str3);System.out.println(str3=str4);输出结果:truefalsetrue3.63.6构造方法构造方法n构造方法是
10、创建对象时调用的特殊方法n方法名必须与要创建对象的类名相同n不允许声明返回类型,即使声明为void也是不正确的n如果类中并没有定义构造方法,Java会自动地给你添加一个无参的缺省构造方法 n可以自定义重载的多个构造方法,在创建对象时使实例多样化。(重载)例:程序3.7 Student.java 3.7 this3.7 this关键字关键字public Student(int age)System.out.println(Invoke constructor with age.);age=age;以上构造方法中出现age=age的奇怪语句,this关键字用来解决这个问题。this引用指向的是其本
11、身所在方法的当前对象。以上构造方法若采用this关键字则修改为:public Student(int age)System.out.println(Invoke constructor with age.);this.age=age;this.age=age意指把参数age的值赋给类成员变量age。3.83.8初始化问题初始化问题n如果程序员使用了缺省的构造方法并且没有在类中初始化成员变量,创建对象时系统会对各种类型的成员变量按表3.3自动进行初始化赋予一个默认值。用构造方法完成初始化用构造方法完成初始化n可以使用自定义的构造方法在方法体内初始化成员n可以在构造方法中使用this()调用其它构
12、造方法以减少代码冗余n构造方法内this必须在第一行n只能调用一次this()不允许调用两次nthis()只能在构造器中使用,其他成员方法不得调用。classStudentintage;Stringname;publicStudent()System.out.println(Creatingdefaultstudent.);System.out.println(Defaultage=+age);System.out.println(Defaultname=+name);publicStudent(inta,Stringn)this(a);/必须在第一句 name=n;System.out.pr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 章节 对象
限制150内