版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章 面向对象编程,学习目标 掌握:掌握创建和使用类对象、使用包的基本方法。 理解:理解面向对象程序设计的基本思想和面向对象的概念。 了解:类的多态,接口的声明及实现方法。 重点 明确各种修饰符的作用,理解继承和复用的概念 理解父类和子类 学会Java类的定义和对象的创建。 难点 理解多态性是如何扩充和维护系统性能 类多态的实现。,本讲要点,面向过程和面向对象,面向过程程序设计示意图 面向对象程序设计示意图,1-4,3.1面向对象的思想,面向对象的基本概念 对象是具有某种特性和某种功能的东西。 将同一种类型的对象归为一个类。 类是对象的抽象,对象是类的实例。 类的特征和行为分别命名为属性和方
2、法,类是对象的模板,而对象是类的实例; 共性与个性的关系,是抽象与具体的关系 。,例如:电视机类 属性:尺寸 颜色 型号 方法:打开 关闭 选择节目,3.1面向对象的思想,一个类中定义的方法可被该类的对象调用,对象方法的每一调用被称作发送一个消息message给对象 。 对象间是相互独立,通过发送消息相互影响。一个消息由三部分组成: (1) 消息目标对象; (2) 执行方法的名字; (3) 执行方法所需要的参数(parameters)。,封装性 封装性就是把对象的属性和方法结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节。对外形成一个边界或者说形成一道屏障,只保留有限的对外接口使之与外部发
3、生联系。 继承性 特殊类的对象拥有其一般类的全部属性与方法,称作特殊类对一般类的继承 .一般类为父类(superclass,超类),特殊类为子类(subclass)。 多态性 对象的多态性是指在一般类中定义的属性或方法被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。,面向对象的特点,面向对象三大机制: 封装:隐藏内部实现 继承:复用现有代码 多态:改写对象行为,3.2类,类由数据成员和方法组成。类封装了一类对象的状态和方法 。,汽车(类) 品牌 型号 颜色 - 加速与减速设计 转向设计 刹车设计 ,类的声明,类的修饰符用于说明类的特征和访问权限,包括public,abstract,
4、final,friendly。public:表示此类为“公共”类 ; abstract:表示此类为“抽象”类 ; final:表示此类为“最终”类 . 类名是Java标识符。通常,类名的第一个字母为大写。,一个Java程序可以定义很多个类,但只能有一个public类,程序的主类必须是public类。每个程序都从主类开始执行。,class,extends,implements都是Java关键字。 class表明定义类。 extends表明目前定义的类是父类继承而来的子类,该父类必须存在。 implements表明类要实现某个接口。各接口名之间用逗号“,”分隔。 类体包含:实现类功能的Java语言
5、程序代码、成员变量、成员方法。 类的成员变量定义: 修饰符 数据类型 成员变量=初值; 成员变量的修饰符 访问控制修饰符public、protected、private; 存在修饰符static、abstract和final。,类的声明,其中: final:表示该变量不能再被修改,称为常量。 例如:final int a=3; static:表示该变量时静态变量,也称为类变量。属于这个类的所有对象的变量。而实例变量只属于某个对象。通过“类.变量名”和“对象.变量名”引用。 默认修饰符,如果某个成员变量没有设置访问权限,允许类自身以及在同一个包中的所有类的变量访问。,class Example
6、int i; static int j; public static void main(String args) Example a=new Example(); a.j=3; Example.j=2; a.i=4; Example.i=5; ,类的成员方法 定义的一般形式为: 方法修饰符 () 方法体 成员方法修饰符 主要有public、private、protected、final、static、abstract和synchronized七种 。 成员方法的返回值类型 方法返回值用return语句来实现,返回的数据类型必须与方法说明中的方法返回值类型一致 ; 如果不需要返回值,则其返回值
7、类型被说明为void;,类的声明,final:为最终方法,不能在其所在类的子类中被重载,只能被继承,不能被重写。 static:不需要初始化该方法所在的类。也不能被它的子类所重载。 在一个static方法中,只能访问被定义为static的类变量和类方法。 abstract:抽象方法,只有方法说明,没有方法体。在它所在的类的子类中具体实现。抽象方法所在的类称为抽象类。 synchronized:同步方法,在多线程中使用。,方法名 成员方法名是Java语言合法的标识符。 参数列表 成员方法的参数列表是由逗号分隔的类型及参数名组成,是可选项。 方法体 方法体是一个方法定义的主要部分,包含了所有实现方
8、法功能的Java语言程序代码,方法体用“ ”括起来 。 例3-2 :源程序名为TestCir.java;定义一个方法,其功能是根据参数r的大小,返回圆的面积。 运行结果:,类的声明,public class TestCir public static void main(String args) /main方法 double k; TestCir mj=new TestCir(); k=mj.area(5); System.out.println(k); public double area(int r) /定义area方法,带有一个参数r final double PI=3.14; /定义常
9、量PI为3.14 return PI*r*r; /由r的值,计算面积,返回面积值 ,类的声明,项目任务:,定义一个正方形,它的数据成员包括长和宽,成员函数包括设置长和宽的值,求长方形的面积。在主方法中定义正方形对象,求长是5,宽是3的面积。然后再求长是8,宽是4的面积。 定义一个职员类Emplyee(姓名,年龄,性别,薪水),一个显示信息的方法,并输出职员信息。,构造方法,构造方法是一种特殊的方法,其名称与类名相同。Java语言中每个类都有构造方法 。 构造方法的特点 构造方法没有返回值类型,没有void。其修饰符只能是访问控制修饰符,即public、private、protected中的任一
10、个。 构造方法不能从父类中继承。 构造方法可以重载,一个类可以有任意多个构造方法。不同的构造方法根据参数的不同状态来选择合适的构造方法。 构造方法不能直接通过方法名引用,必须通过new运算符。 在构造方法中调用当前类和其父类的构造方法,但必须在方法体的第一条语句。,在前一个任务的基础上,构造3个构造函数。,this对象本身,表示对象本身 在不同方法中表示调用这个方法的对象 在构造方法中表示新创建的对象 作用 使用this访问域及方法 使用this解决局部变量与成员变量同名 在构造方法中,用this调用另一个构造方法 必须放在第一句 不能通过this引用类变量、类方法,class Person
11、String name; public void ex1(String name) /name=name; =name; public void ex2() ex1(“XMJ”);/? this.ex1(“XMJ”);/? /局部变量与成员变量同名,public class A public A(int i) public A(int i,int j) this(5);/第一句 /调用另一个构造方法,super直接父类,使用super访问父类被子类隐藏的同名的成员 使用父类的构造方法super()必须放在第一句,class A int i; void value() i=10
12、; System.out.println(i); ,class B extends A int i; void value() i=20; super.value(); System.out.println(i); System.out.println(super.i); ,this与super的区别 this使用当前类的构造方法,super使用其父类的构造方法。 this用以指代一个对象自身,它的作用主要是将自己当成对象作为参数,传送给别的对象中的方法; super为了访问父类的成员变量或方法,采用super加上点和成员变量或方法的形式。,构造方法,例3-3:源程序名为Inheritance
13、.java,是构造方法的例子。,/*定义一个父类superclassname*/ class superclassname int x; superclassname() /父类无参数构造方法 x=3; System.out.println(在父类中x=+x); void dosomething() /父类中成员方法 System.out.println(在父类中dosomething(); ,/*定义一个子类subclass,从superclassname继承而来*/ class subclass extends superclassname int x; subclass() super(
14、); /调用父类无参数构造方法 x=5; System.out.println(在子类中x=+x); void dosomething() /子类中成员方法 super.dosomething(); /调用父类中成员方法 dosomething() System.out.println(在子类中dosomething(); System.out.println(super.x=+super.x+ sub.x=+this.x); /*利用super引用父类对象,利用this引用当前对象*/ ,/*定义主程序类inheritance*/ class Inheritance public stati
15、c void main(String args) subclass subc=new subclass(); /调用子类构造方法创建一个对象subc subc.dosomething(); /调用子类的成员方法 dosomething() ,运行结果:,3.3对象,对象的定义 = new(参数1,参数2,); 或者: ; = new (参数1,参数2,); 创建对象实际执行了三个操作:说明对象、实例化对象和初始化对象。 说明对象:就是给对象命名,也称定义一个实例变量。 一般形式为: ; 实例化对象:给对象分配存储空间,用来保存对象的数据和代码。new运算符用来实现对象的实例化。 = new (
16、参数1,参数2,);,对象的使用,初始化对象通过调用该对象所在类的构造方法来实现的。 引用对象的方法一般形式: (,); 例3-4:程序TwoArea.java,是引用对象的例子。,执行结果:,/*定义一个类Point*/ class Point public int x; /定义成员变量 public int y; /定义成员变量 public Point() /Point构造方法,不带参数 this.x=0; /引用当前x this.y=0; /引用当前y public Point(int x,int y) /Point构造方法,带两个参数 this.x=x; /引用当前x this.y=
17、y; /引用当前y ,/*定义一个类Graph*/ class Graph public int width=0; /定义成员变量 public int height=0; /定义成员变量 public Point origin; /定义成员变量 public Graph() /Graph构造方法1,不带参数 origin=new Point(0,0); public Graph(Point p) /Graph构造方法2,带一个参数 origin=p; public Graph(Point p,int w,int h) /Graph构造方法3,带三个参数, origin=p; width=w;
18、 height=h; ,public void move1(int x,int y) /成员方法move1 origin.x=x; origin.y=y; public void move2(int a,int b) /成员方法move2 origin.x+=a; origin.y+=b; public int area() /成员方法area return width * height; ,public class TwoArea /*定义主程序类*/ public static void main(String args) int x=3,y=4; int w=4,h=5; Point p
19、1=new Point(x,y); /将原点p1定在(3,4)坐标点 Point p2=new Point(6,8); /将原点p2定在(6,8) 坐标点 Graph r1=new Graph(p1,w,h); Graph r2=new Graph(p2,8,10); r1.move1(4,6); /把矩形r1的原点移到(4,6) r2.move2(-2,4); /把矩形r2的原点x坐标减2,y坐标加4 System.out.println(两个矩形面积差=+(r2.area() - r1.area(); /*调用成员方法计算矩形r2与r1面积差*/ System.out.print(r1的原
20、点为(+r1.origin.x+,); System.out.println(r1.origin.y+); System.out.print(r2的原点为(+r2.origin.x+,); System.out.println(r2.origin.y+); ,3.4继承与多态,继承性 子类可以沿用父类的某些特征。子类也可以具有自己独立的属性和操作。 继承分单继承和多继承。,什么是继承,在日常生活中,经常遇到如下问题。有一辆自行车,自行车有颜色和型号大小之分,而公路赛车也有颜色和型号大小之分,公路赛车多了一项速度的优势。自行车有的东西公路赛车全都有,而公路赛车有的东西自行车不一定有,它们相同地方
21、有很多。在Java中,对于这种情况下就采用继承来完成这个功能。,/这是一个类,表述的是一个自行车 public class bike public String color; /自行车的颜色 public int size; /自行车的大小,即型号 /这是一个类,表述的是一个公路赛类 pubic class racing_cycle public String color; /自行车的颜色 public int size; /自行车的大小,即型号 public String speed; /公路赛车的速度 ,/这是一个类,表述的是一个自行车 public class bike public S
22、tring color;/自行车的颜色 public int size; /自行车的大小,即型号 /这是一个类,表述的是一个公路赛车,它继承于自行车 pubic class racing_cycle extends bike public String speed; /公路赛车的速度 ,在Java中,被继承的类叫超类(superclass),继承超类的类叫子类(subclass)。因此,子类是超类的一个功能上的扩展,它继承了超类定义的所有属性和方法,并且添加了特有功能方法。 Java是单继承的,子类可以有很多,父类只能有一个。上面的例子,如果加一个Friend类,Son只能继承自Father,
23、要么继承Friend,不能同时继承Father和Friend。 Java的继承是多层继承的,是一个类可以有很多子类,而子类下面又可以有很多子类。 父类没有定义一个无参的构造器,那么编译器就默认生成一个无参的构造器,也可以在子类构造器里显示使用super方法调用父类构造器,super方法里写几个参数就可以表示调用的是父类的哪一个构造器。,当父类中没有构造方法或只有不带参数的构造方法时,系统会在子类构造器自动加上super语句,可以不显式地添加对父类构造器方法的调用,但如果父类中有带参数的构造器方法,那么,必须显式在构造器中使用super调用父类的带参数的构造器方法,否则编译出错。,继承性,继承的
24、目的:实现代码重用。 子类不能继承父类中访问权限为private的成员变量和方法。 子类可以继承父类方法和成员变量,但它不能继承构造方法。 创建子类格式:,Public class SubClass extends SuperClass ,访问权限 class 类名 extends 父类,例3-5:源程序名Car Demo .java,是类的继承。,class Car int car_number; void set_number(int car_num) car_number=car_num; void show_number() System.out.println (My car No.
25、 is :+car_number); ,继承性,class Bus extends Car int capacity; void set_capacity(int bus_car_capacity) capacity=bus_car_capacity; void show_capacity() System.out.println(My capacity is: + capacity); ,class CarDemo public static void main(String args) Bus DemoBus = new Bus(); DemoBus.set_number(6868); D
26、emoBus.show_number(); DemoBus.set_capacity(30); DemoBus.show_capacity(); ,运行结果:,继承性,项目任务:,多态性,多态性体现在两个方面:由方法重载实现的静态多态性(编译时多态)和方法重写实现的动态多态性(运行时多态)。 方法重写:指方法的含义被重写后替代 。 子类通过隐藏父类的成员变量和重写父类的方法,可以把父类的状态和行为改变为自身的状态和行为。 子类中重写的方法和父类中被重写的方法要具有相同的名字,相同的参数表和相同的返回类型,只是函数体不同。 方法重写时应遵循的原则: 改写后的方法不能比被重写的方法有更严格的访问权
27、限(可以相同)。改写后的方法不能比重写的方法产生更多的例外。,自行车的移动和公路赛车的移动都是靠外力来移动,二者是相同的。公路赛车继承了这一特点,但公路赛车的移动速度就不相同了,移动的快慢就是由它们各自移动特性不相同决定的,,class bike /自行车的移动速度 public void move() System.out.println(速度慢的!); ,public class racing_cycle extends bike /公路赛车的移动速度 public void move() System.out.println(速度快的!); ,public static void mai
28、n(String args) racing_cycle rc = new racing_cycle(); /创建了一个公路赛车的对象,对象引用为rc rc.move(); /执行了move()方法 ,例3-6:源程序名Rewritex.java,,是方法的重写的例子。,class SuperClass int x; void setF( ) x=0; System.out.println(Super的变量x的值+x); ,void setF( ) /重写了父类的方法 setF() x =6; System.out.println(Son的变量x的值+x); ,class SubClass ex
29、tends SuperClass int x;/隐藏了父类的变量x,多态性,class Rewritex public static void main(String args) SubClass Son = new SubClass (); Son.setF(); SuperClass Father= new SubClass (); Father.setF(); ,运行结果:,多态性,方法重载 方法重载是指同样方法在不同的地方具有不同的含义。 方法重载使一个类中可以有多个相同名字的方法。编译器根据参数的不同来静态确定调用相应的方法。 方法重载中这些方法的参数必须不同,或是参数的数量不同,或
30、是参数的类型不同。 例3-8:源程序名TestLoad.java,方法重载的例子。,多态性,/*定义一个方法重载的类*/ class Load void receive(int i) / receive方法,带有int类型参数1个 System.out.print(Receive one data!:); System.out.println(i=+i); ,void receive(int x,int y) / receive方法,带有int类型参数2个 System.out.print(Receive two datas!:); System.out.println(x=+x+,y=+y)
31、; void receive(double d) / receive方法,带有double类型参数1个 System.out.print(Receive one double data!:); System.out.println(d=+d); void receive(String s) / receive方法,带有string类型参数1个 System.out.print(Receive a sting!:); System.out.println(s=+s); ,/*主程序类*/ public class TestLoad public static void main(String a
32、rgs) Load mo=new Load (); /创建对象mo mo.receive(1); /调用receive方法,带int类型参数1个 mo.receive(2,3); /调用receive方法,带int类型参数2个 mo.receive(3.14159); /调用receive方法,带double类型参数1个 mo.receive(It is a Test!); /调用receive方法,带string型参数1个 ,运行结果:,项目任务,设计一个math类,通过它可以实现整数的加法运算和实数的加法运算。 设计一个employee类,包括数据成员(姓名,年龄,工号,工资),构造方法,
33、addsalary方法增加工资(加薪10%),list显示信息。再设计一个manager类,增加数据成员position,改写addsalary方法增加工资(加薪20%)。,3.5抽象类和接口,抽象类(见Animal.java) 只给出抽象结构,不给出每个成员函数的完整实现的类。 抽象方法:是指该方法只有方法说明却没有方法体。 用abstract 关键字来修饰一个抽象类,用abstract 关键字来修饰一个抽象方法。 抽象类必须被继承,抽象方法必须被重写。 例3-9源程序Abstract.java,一个带有抽象成员函数的类。 abstract class A abstract void cal
34、lme( ); void me( ) System.out.println(在A的me成员函数里); ,抽象类,class B extends A void callme( ) System.out.println(在B的callme成员函数里); public class Abstract public static void main(String args) A a = new B( ); a.callme( ); a.me ( ); ,运行结果:,抽象类,用关键字abstract修饰的类称为抽象类 abstract class A /类A为抽象类 ,不能直接被实例化,因此一般作为其它类
35、的父类,定义目的是提供可由其子类共享的一般形式。,抽象类需要继承,子类根据自身需要扩展抽象类。,抽象类,用关键字abstract修饰的方法称为抽象方法 abstract class A abstract int aa(int x,int y);/方法aa为抽象方法 ,抽象类中可以没有抽象方法或某个方法不是抽象方法,有抽象方法的类一定是抽象类抽象方法只能位于抽象类。,接口,Shape.java Java语言不支持多继承性,即一个子类只能有一个 父类,但有时子类需要继承多个父类的特性,因此, 引入了接口。 接口(Interface),是一些抽象方法和常量的集合。 接口的定义 使用关键字interf
36、ace。 接口定义的一般形式为:,接口修饰符 interface extends 接口体 ,public abstract class aaa /抽象类里的抽象方法 abstract public void show(); /抽象类里的方法 public int getMax() /定义int类型的私有变量i int i = 123; /将变量i返回出去并退出方法 return i; ,public class test extends aaa public static void main(String args) test t=new test(); t.show(); public vo
37、id show() System.out.println(“实现了抽象类中的方法”); ,接口,首先来举一个例子,汽车的移动就好比一个接口,在以后生产的汽车中都遵循这个接口进行制造。而接口中只定义了汽车移动的形式,没有具体的去定义是怎么进行移动的,所以接口就好比是一个规定。 接口修饰符 interface 接口名称 /成员变量和方法的申明 ,接口修饰符和类的修饰符是一样的。 interface是定义接口的关键字。 接口里的成员变量默认为public static final类型的 接口不能声明为final的,因为final类型的必须要实现。 接口就是一个特殊的抽象类,抽象类里有抽象的方法和普通
38、的方法,而接口里方法全为抽象的,需要在其子类进行具体的方法实现。类就是一个产品的详细功能说明,而接口就是这些功能的简要说明。,接口,如果一个抽象类中的所有方法都是抽象的,就可以将这个类用另外一种方式来定义,也就是接口定义。 接口是抽象方法和常量值的定义的集合,从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。,可以使用extends来继承接口的常量和抽象方法,但它与类中的extends不同,它可以继承有多个父接口(多重继承),各父接口间用逗号隔开。 接口中的所有常量必须是public static final,方法必须是public abstrac
39、t,这是系统默认的,不管你在定义接口时,写不写修饰符都是一样的。,接口的定义,接口修饰符 接口修饰符为接口访问权限,有public和缺省两种状态。 public状态 :用public指明任意类均可以使用这个接口。 缺省状态: 在缺省情况下,只有与该接口定义在同一 包中的类才可以访问这个接口,而其他包中的类无权访问该接口。 父类接口列表 一个接口可以继承其他接口,可通过关键词extends来实现,其语法与类的继承相同。被继承的类接口称为父类接口,当有多个父类接口时,用逗号“,”分隔。 接口体 接口体中包括接口中所需要说明的常量和抽象方法。,接口的实现,使用关键字implements 。 在实现一
40、个接口时,类中对方法的定义要和接口中的相应的方法的定义相匹配,其方法名、方法的返回值类型、方法的访问权限和参数的数目与类型信息要一致。 例3-10源程序名interfacetest.java,是接口的例子。,interface superinterface1 /*定义接口1*/ static final double PI=3.14; /说明常量 public double Area(); /public状态方法 interface superinterface2 /*定义接口2*/, double bulk(); /缺省状态方法 ,/*定义一个主程序类实现接口*/ public class
41、interfacetest implements superinterface1,superinterface2 double r; double l; public interfacetest() /不带参数构造方法 this.r=0.0; this.l=0.0; public interfacetest(double r,double l) /带两个参数的构造方法 this.r=r; this.l=l; ,接口的实现,public double Area() /实现接口方法 return 2*PI*(r+1); public double bulk() /实现接口方法 return PI*
42、r*r*l; public static void main( String args ) interfacetest c1=new interfacetest(10.0,6.0); /创建类对象 double arearesult; arearesult=c1.Area(); double bulkresult; bulkresult=c1.bulk(); System.out.println(面积为+arearesult); System.out.println(体积为+bulkresult); ,包,所谓包,就好比日常生活中的箱子,是一个存放东西的空间。在Java中包的概念就好比Wind
43、ows里的目录的概念,是一层一层的关系。按照功能的分类分别存放在各个包里。,使用包是为了更好地将代码进行分别管理,首先介绍如何创建一个包,语法为: package 包名; 例如下面的程序语句。 package a.b; 创建包时有几个注意事项。 package为Java保留的关键字,不能使用别的符号进行代替。 package语句必须在第一行。 package语句只能有一个,不能有多个。 如果包有多层的话用句点”.”分隔,包的定义,包定义的一般形式为: package .; package语句通过使用“”来创建不同层次的包,这个包的层次对应于文件系统的目录结构。 例如:package java.
44、awt.image 表明这个包存储在javaawtimage目录中。 在JDK环境下创建一个包,编译Java程序的命令为: javac d ,使用-d参数,编译结束后,扩展名为class的文件被存储在package语句所指明的目录中。,包名全部用小写字母,包的引入,使用关键词import语句来引入一个包 。 如果有package语句,则import语句紧接在其后,否则import语句应在程序首位。 引入import语句的一般形式: import .包名2.包名3.(类名|*); 包的访问权限 包中封装了类和其他的包, Java语言提供了许多不同级别的访问权限修饰符来控制对成员变量和成员方法的访
45、问权限。因此,Java语言的包中也存在访问权限问题。,例3-11源程序TestMan.java,创建包和引用包的例子 .,package mypackage; public class Man String name; int age; public Man(String n,int a) name=n; age=a; public void show() if (age18) System.out.println(name+的年龄是+age); ,/TestMan.java文件代码 import mypackage.*; public class TestMan public static
46、void main(String args) Man test=new Man(李阳,15); test.show(); ,Java API API是系统提供的类库,它不是用户定义的,而是Java系统自带的,供程序员编程时直接使用。使用过程中,程序员只需要根据实际情况安排若干个API实例对象,再调用这些对象的各种方法,就可以完成相应任务。 Java提供了编程所需的一些基础API类,这些类分布在不同的包中。,3.7系统常用类,系统常用包 Java.lang包:主要含有与语言相关的类 。 J包:含有与网络操作相关的类。 Java.io包:主要含有与输入输出相关的类Java.util包:包括许多具有
47、特定功能的类,有Arrays、Date、Calendar和Stack等 。 Java.swing包:提供了创建图形用户界面元素的类。 Java.applet包:含有控制HotJava 浏览器的类。 Object类 Object类处于Java开发环境的类层次树的根部。,Object类,Object类的常用方法: clone ( ) :生成并返回当前对象的一个拷贝。 equals (Object obj):比较两个对象是否相同,结果为一布尔值。 getClass( ):返回一个对象在运行时所对应的类的表示,从而得到相关的类的信息。 finalize( ):定义回收当前对象时所需完成的清理工作。 t
48、oString( ):返回描述当前对象的字符串信息。,例3-12源程序ObjectExam.java,Object类的常用方法示例。,Rect(double len, double width) /定义有两个参数的构造方法 a=len;b=width; double area() return a*b; class ObjectExam public static void main(String args) ,class Rect double a,b; Rect() a=0.0; b=0.0; /定义无参数的构造方法,Integer a = new Integer(1); Integer
49、b = new Integer(1); Rect c = new Rect (20,5); System.out.println(a.equals(b); /a=b,返回true System.out.println(The Objects class is: + a.getClass(); System.out.println(c.toString(); ,Character类,Character类的构造方法为: public Character(charvalue) Character类的一些常用方法及其说明 : isLowerCase(charch):判断字符为小写格式。 isUpper
50、Case(charch):判断字符为大写格式。 isDigit(charch): 判断字符是否为数字。 isLetter(charch): 判断字符是否为字母。 charValue ( ): 返回字符变量。,boolean Boolean char Character byte Byte short Short int Integer long Long float Float double Double,例3-14 源程序Char2.java,public class Char2 public static void main(String args ) /构造方法 Character ch
51、 = new Character(a); char c = ch.charValue(); /返回字符变量 if (Character.isUpperCase(c) System.out.println(The character + c + is upper case.); else System.out.println(The character + c + is lower case.); boolean b = Character.isDigit(c); boolean y= Character.isLetter(c); int x = Character.digit(c,16); /
52、十六进制中,c代表10。 System.out.println(b= + b); System.out.println(y= + y); System.out.println(x= + x); ,Integer类,Integer类有两种构造方法 public Integer(intvalue) public Integer(Strings) throws NumberFormatException Integer类的常用类变量及其说明 MAX_VALUE:规定了int类型的最大值。 MIN_VALUE:规定了int类型的最小值。 Integer类的常用方法及其说明 parseInt(Strin
53、gs) :将字符串s转换为带符号十进制整数,结果为int量。 valueOf(Strings):将字符串s转换为一个Integer对象,该对象对应的int数值与字符串表示的数值一致。,例3-15源程序名IntTest .java,public class IntTest public static void main(String args ) /构造方法 Integer a = new Integer(1); Integer a2 = new Integer(1); int i = Value( ); int i2 = Integer.valueOf(22).intValue( )
54、; int i3 = Integer.parseInt(66); System.out.println(i); System.out.println(i2); System.out.println(i3); System.out.println(a.equals(a2); byte largestByte = Byte.MAX_VALUE; short largestShort = Short.MAX_VALUE;,int largestInteger = Integer.MAX_VALUE; int smallestInteger = Integer.MIN_VALUE; long larg
55、estLong = Long.MAX_VALUE; float largestFloat = Float.MAX_VALUE; double largestDouble = Double.MAX_VALUE; System.out.println(The largest byte value is + largestByte); System.out.println(The largest short value is + largestShort); System.out.println(The largest integer value is + largestInteger); Syst
56、em.out.println(The smallest integer value is + smallestInteger); System.out.println(The largest long value is + largestLong); System.out.println(The largest float value is + largestFloat); System.out.println(The largest double value is + largestDouble); ,String类,String类提供的构造方法 public String (); publ
57、ic String (char chars ); public String (char chars ,int startIndex,int numChars); public String(Stringvalue) public String(StringBufferbuffer) String类的常用方法及其说明 length( ):字符串的长度。 trim( ):去掉当前字符串中的前导空格和末尾的空格。 substring (int beginIndex):提取子串,从beginIndex位置开始到末尾的子串。 substring (int beginIndex , int endIndex):提取子串,返回当前字符串的子串,该子串由beginIndex(包含在内)和endIndex(不包含在内)之间的字符组成。,String类,replace(char oldChar,char newChar):将字符串中的所有出现的oldChar用newChar替换,生成一个新字符串。 charAt(intindex):从字符串中分解字符。返回指定索引位置上的字符。索引范围在0与length()-1之间。 getChars (int srcBegin,int srcEnd,char dst ,int dstBegin):
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川雅安市芦山县农业和文化旅游发展集团有限责任公司招聘9人考前冲刺试卷及参考答案详解(新)
- 2026四川广安市广安区人力资源和社会保障局政策性岗位招聘128人模拟试卷带答案详解(基础题)
- 2026年8月广西柳州三江县妇幼保健院招聘编外工作人员2人模拟试卷及完整答案详解【历年真题】
- 2026湖北恩施州咸丰县残疾人联合会公益性岗位招聘1人模拟试卷附参考答案详解(黄金题型)
- 2026年西安市第一实验学校教师招聘笔试题库带答案详解(培优B卷)
- 2026中国农业科学院农业资源与农业区划研究所资划所高层次人才招聘模拟试卷及参考答案详解【预热题】
- 2026年乡村民宿改造:乡村民宿的社区共享图书馆设计
- 2025-2026学年四川省阿坝藏族羌族自治州三年级数学第二学期期末质量跟踪监视试题(含答案)
- 2025-2026学年四川省广安市武胜县三年级数学第二学期期中达标检测试题含答案解析
- 汽车文化考试趣味题目及答案公布
- 校服循环利用管理办法
- 影视制作行业工作证明(6篇)
- 施工机械设备应急抢修保障措施
- Vensim中文学习手册
- JG/T 154-2013电动伸缩围墙大门
- 护理分级分层管理制度
- 备战2025年中考物理压轴真题分类汇编挑战25广东卷(广东近两年共39题)(原卷版+解析)
- TCAICI39-2022《通信光缆附挂供电杆路技术规范》
- 人教精通版小学英语3-6年级单词词汇表
- GB/T 10810.1-2025眼镜镜片第1部分:单焦和多焦
- DAM全固态中波发射机
评论
0/150
提交评论