版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章 面向对象编程,学习目标 掌握:掌握创建和使用类对象、使用包的基本方法。 理解:理解面向对象程序设计的基本思想和面向对象的概念。 了解:类的多态,接口的声明及实现方法。 重点 明确各种修饰符的作用,理解继承和复用的概念 理解父类和子类 学会Java类的定义和对象的创建。 难点 理解多态性是如何扩充和维护系统性能 类多态的实现。,本讲要点,面向过程和面向对象,面向过程程序设计示意图 面向对象程序设计示意图,1-4,3.1面向对象的思想,面向对象的基本概念 对象是具有某种特性和某种功能的东西。 将同一种类型的对象归为一个类。 类是对象的抽象,对象是类的实例。 类的特征和行为分别命名为属性和方
2、法,类是对象的模板,而对象是类的实例; 共性与个性的关系,是抽象与具体的关系 。,例如:电视机类 属性成员变量(定义对象的状态) 颜色 尺寸 型号 方法成员方法(对象行为的描述) 打开 关闭 选择节目,封装性 封装性就是把对象的属性和方法结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节。对外形成一个边界或者说形成一道屏障,只保留有限的对外接口使之与外部发生联系。 继承性 特殊类的对象拥有其一般类的全部属性与方法,称作特殊类对一般类的继承 .一般类为父类(superclass,超类),特殊类为子类(subclass)。 多态性 对象的多态性是指在一般类中定义的属性或方法被特殊类继承之后,可以
3、具有不同的数据类型或表现出不同的行为。,面向对象的特点,面向对象三大机制: 封装:隐藏内部实现 继承:复用现有代码 多态:改写对象行为,3.2类,类由数据成员和方法组成。类封装了一类对象的状态和方法 。,汽车(类) 品牌 型号 颜色 - 加速与减速设计 转向设计 刹车设计 ,类的声明,类的修饰符用于说明类的特征和访问权限,包括public,abstract,final,friendly。public:表示此类为“公共”类 ; abstract:表示此类为“抽象”类 ; final:表示此类为“最终”类 . 类名是Java标识符。通常,类名的第一个字母为大写。,一个Java程序可以定义很多个类,
4、但只能有一个public类,程序的主类必须是public类。每个程序都从主类开始执行。,class Person String name; int age; void talk() System.out.println(“我是”+name+”年龄是”+age); ,类的成员方法 定义的一般形式为: 方法修饰符 () 方法体 return 返回值; 成员方法修饰符 主要有public、private、protected、final、static、abstract和synchronized七种 。 成员方法的返回值类型 方法返回值用return语句来实现,返回的数据类型必须与方法说明中的方法返回值
5、类型一致 ; 如果不需要返回值,则其返回值类型被说明为void;,类的声明,例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=
6、3.14; /定义常量PI为3.14 return PI*r*r; /由r的值,计算面积,返回面积值 ,类的声明,类提供的只是一个模板,必须依照它创建出对象之后才可以使用。,3.3对象,对象的定义 类名 对象名 = new 类名(); 其中:对象名可以看做是一个变量,构造方法是类创建时必须执行的方法,用于构造一个新的对象并初始化对象属性。 例如: Person p=new Person();,如何访问对象里的某个成员变量或方法。 对象名称.属性名 对象名称.方法名 例如: ; p.talk(); 例:关于人类的完整程序。,项目任务:,定义一个职员类Emplyee(姓名,年龄,性别,
7、薪水),一个显示信息的方法,并输出职员信息。,对象数组的使用,第一步:声明类类型的数组变量,并用new分配内存 空间给数组; 第二步:用new产生新的对象,并分配内存空间给它。 例如: Person p=new Person3; 例,对象数组的使用。TestPersonArray.java,构造方法,1、构造方法是一种特殊的方法,其名称与类名相同。对象的创建就是通过构造方法完成的。主要功能是完成对象的初始化。 2、如果类中没有明确定义任何构造方法,则编译器会自动创建一个不带参数的默认的构造方法。,构造方法的特点 构造方法没有返回值类型,没有void。其修饰符只能是访问控制修饰符,即public
8、、private、protected中的任一个。 构造方法不能从父类中继承。 构造方法可以重载,一个类可以有任意多个构造方法。不同的构造方法根据参数的不同状态来选择合适的构造方法。 构造方法不能直接通过方法名引用,必须通过new运算符。 例:构造方法完成初始化,注意: 如果在类中定义的构造方法都不是无参的构造方法,则编译器不会为类设置一个默认的无参构造方法,当试图调用无参构造方法实例化一个对象时,编译器会报错。只有在类中没有定义任何构造方法时,编译器才会创建一个不带参数的构造方法。,在前一个任务的基础上,构造3个构造函数。,类成员与类方法,一、类变量 称静态成员变量,在成员变量前加static
9、,静态成员变量不是分配给每个成员的,而是属于类的变量,所以可以直接使用“类名.成员变量名”去访问,是该类所有对象共享的。 例如:中国人是一个类,其中country代表国家,可以把它声明成静态变量。 class Chinese public static String country=“中国人”; ,二、类方法 成员变量和成员方法必须创建对象,通过对象才能访问。但有时也希望能够不必创建对象直接调用类的某个方法,就是类方法。 public static void print(String mess) ,任务,定义StaticCode类,在类中定义静态成员变量count,该变量是对象计数器,用于记录
10、该类创建了多少个对象。 定义StaticDemo类测试。,this对象本身,表示对象本身 在不同方法中表示调用这个方法的对象 在构造方法中表示新创建的对象 作用 使用this访问域及方法 使用this解决局部变量与成员变量同名 在构造方法中,用this调用另一个构造方法 必须放在第一句 不能通过this引用类变量、类方法,class Person String name; public void ex1(String name) /name=name; =name; public void ex2() ex1(“XMJ”);/? this.ex1(“XMJ”);/? /局部变
11、量与成员变量同名,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; System.out.println(i); ,class B extends A int i; void value() i=20; super.value(); System.out.println(i); System.out.printl
12、n(super.i); ,this与super的区别 this使用当前类的构造方法,super使用其父类的构造方法。 this用以指代一个对象自身,它的作用主要是将自己当成对象作为参数,传送给别的对象中的方法; super为了访问父类的成员变量或方法,采用super加上点和成员变量或方法的形式。,构造方法,例3-3:源程序名为Inheritance.java,是构造方法的例子。,/*定义一个父类superclassname*/ class superclassname int x; superclassname() /父类无参数构造方法 x=3; System.out.println(在父类中
13、x=+x); void dosomething() /父类中成员方法 System.out.println(在父类中dosomething(); ,/*定义一个子类subclass,从superclassname继承而来*/ class subclass extends superclassname int x; subclass() super(); /调用父类无参数构造方法 x=5; System.out.println(在子类中x=+x); void dosomething() /子类中成员方法 super.dosomething(); /调用父类中成员方法 dosomething()
14、System.out.println(在子类中dosomething(); System.out.println(super.x=+super.x+ sub.x=+this.x); /*利用super引用父类对象,利用this引用当前对象*/ ,/*定义主程序类inheritance*/ class Inheritance public static void main(String args) subclass subc=new subclass(); /调用子类构造方法创建一个对象subc subc.dosomething(); /调用子类的成员方法 dosomething() ,运行结果
15、:,对象的使用,例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=y; /引用当前y ,/*定义一个类Graph*/ class Graph public int widt
16、h=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; height=h; ,public void move1(int x,int y) /成员方法move1
17、 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 p1=new Point(x,y); /将原点p1定在(3,4)坐标点 Point p2=new Point
18、(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的原点为(+r1.origin.x+,); System.out.println(r1.origin.y+);
19、 System.out.print(r2的原点为(+r2.origin.x+,); System.out.println(r2.origin.y+); ,3.4继承与多态,继承性 子类可以沿用父类的某些特征。子类也可以具有自己独立的属性和操作。 继承分单继承和多继承。,什么是继承,在日常生活中,经常遇到如下问题。有一辆自行车,自行车有颜色和型号大小之分,而公路赛车也有颜色和型号大小之分,公路赛车多了一项速度的优势。自行车有的东西公路赛车全都有,而公路赛车有的东西自行车不一定有,它们相同地方有很多。在Java中,对于这种情况下就采用继承来完成这个功能。,/这是一个类,表述的是一个自行车 publ
20、ic 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 String color;/自行车的颜色 public int size; /自行车的大小,即型号 /这是一
21、个类,表述的是一个公路赛车,它继承于自行车 pubic class racing_cycle extends bike public String speed; /公路赛车的速度 ,在Java中,被继承的类叫超类(superclass),继承超类的类叫子类(subclass)。因此,子类是超类的一个功能上的扩展,它继承了超类定义的所有属性和方法,并且添加了特有功能方法。 Java是单继承的,子类可以有很多,父类只能有一个。上面的例子,如果加一个Friend类,Son只能继承自Father,要么继承Friend,不能同时继承Father和Friend。 Java的继承是多层继承的,是一个类可以有
22、很多子类,而子类下面又可以有很多子类。 父类没有定义一个无参的构造器,那么编译器就默认生成一个无参的构造器,也可以在子类构造器里显示使用super方法调用父类构造器,super方法里写几个参数就可以表示调用的是父类的哪一个构造器。,定义一个Person类,再定义一个Student类,增加一个属性school.,当父类中没有构造方法或只有不带参数的构造方法时,系统会在子类构造器自动加上super语句,可以不显式地添加对父类构造器方法的调用,但如果父类中有带参数的构造器方法,那么,必须显式在构造器中使用super调用父类的带参数的构造器方法,否则编译出错。 见例,继承性,继承的目的:实现代码重用。
23、 子类不能继承父类中访问权限为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. is :+car_
24、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); DemoBus.sho
25、w_number(); DemoBus.set_capacity(30); DemoBus.show_capacity(); ,运行结果:,继承性,项目任务:,多态性,多态性体现在两个方面:由方法重载实现的静态多态性(编译时多态)和方法重写实现的动态多态性(运行时多态)。 方法重写:指方法的含义被重写后替代 。 子类通过隐藏父类的成员变量和重写父类的方法,可以把父类的状态和行为改变为自身的状态和行为。 子类中重写的方法和父类中被重写的方法要具有相同的名字,相同的参数表和相同的返回类型,只是函数体不同。 方法重写时应遵循的原则: 改写后的方法不能比被重写的方法有更严格的访问权限(可以相同)。改写
26、后的方法不能比重写的方法产生更多的例外。,自行车的移动和公路赛车的移动都是靠外力来移动,二者是相同的。公路赛车继承了这一特点,但公路赛车的移动速度就不相同了,移动的快慢就是由它们各自移动特性不相同决定的,,class bike /自行车的移动速度 public void move() System.out.println(速度慢的!); ,public class racing_cycle extends bike /公路赛车的移动速度 public void move() System.out.println(速度快的!); ,public static void main(String a
27、rgs) 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 extends Supe
28、rClass int x;/隐藏了父类的变量x,多态性,class Rewritex public static void main(String args) SubClass Son = new SubClass (); Son.setF(); SuperClass Father= new SubClass (); Father.setF(); ,运行结果:,多态性,方法重载 方法重载是指同样方法在不同的地方具有不同的含义。 方法重载使一个类中可以有多个相同名字的方法。编译器根据参数的不同来静态确定调用相应的方法。 方法重载中这些方法的参数必须不同,或是参数的数量不同,或是参数的类型不同。
29、例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); void rec
30、eive(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 args) Load
31、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类,包括数据成员(姓名,年龄,工号,工资),构造方法,addsalary方
32、法增加工资(加薪10%),list显示信息。再设计一个manager类,增加数据成员position,改写addsalary方法增加工资(加薪20%)。,3.5抽象类和接口,抽象类(见Animal.java) 只给出抽象结构,不给出每个成员函数的完整实现的类。 抽象方法:是指该方法只有方法说明却没有方法体。 用abstract 关键字来修饰一个抽象类,用abstract 关键字来修饰一个抽象方法。 抽象类必须被继承,抽象方法必须被重写。 例3-9源程序Abstract.java,一个带有抽象成员函数的类。 abstract class A abstract void callme( ); vo
33、id 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为抽象类 ,不能直接被实例化,因此一般作为其它类的父类,定义目的是提
34、供可由其子类共享的一般形式。,抽象类需要继承,子类根据自身需要扩展抽象类。,抽象类,用关键字abstract修饰的方法称为抽象方法 abstract class A abstract int aa(int x,int y);/方法aa为抽象方法 ,抽象类中可以没有抽象方法或某个方法不是抽象方法,有抽象方法的类一定是抽象类抽象方法只能位于抽象类。,接口,Shape.java Java语言不支持多继承性,即一个子类只能有一个 父类,但有时子类需要继承多个父类的特性,因此, 引入了接口。 接口(Interface),是一些抽象方法和常量的集合。 接口的定义 使用关键字interface。 接口定义的
35、一般形式为:,接口修饰符 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 void show()
36、System.out.println(“实现了抽象类中的方法”); ,接口,首先来举一个例子,汽车的移动就好比一个接口,在以后生产的汽车中都遵循这个接口进行制造。而接口中只定义了汽车移动的形式,没有具体的去定义是怎么进行移动的,所以接口就好比是一个规定。 接口修饰符 interface 接口名称 /成员变量和方法的申明 ,接口修饰符和类的修饰符是一样的。 interface是定义接口的关键字。 接口里的成员变量默认为public static final类型的 接口不能声明为final的,因为final类型的必须要实现。 接口就是一个特殊的抽象类,抽象类里有抽象的方法和普通的方法,而接口里方法
37、全为抽象的,需要在其子类进行具体的方法实现。类就是一个产品的详细功能说明,而接口就是这些功能的简要说明。,接口,如果一个抽象类中的所有方法都是抽象的,就可以将这个类用另外一种方式来定义,也就是接口定义。 接口是抽象方法和常量值的定义的集合,从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。,可以使用extends来继承接口的常量和抽象方法,但它与类中的extends不同,它可以继承有多个父接口(多重继承),各父接口间用逗号隔开。 接口中的所有常量必须是public static final,方法必须是public abstract,这是系统默认的,
38、不管你在定义接口时,写不写修饰符都是一样的。,接口的定义,接口修饰符 接口修饰符为接口访问权限,有public和缺省两种状态。 public状态 :用public指明任意类均可以使用这个接口。 缺省状态: 在缺省情况下,只有与该接口定义在同一 包中的类才可以访问这个接口,而其他包中的类无权访问该接口。 父类接口列表 一个接口可以继承其他接口,可通过关键词extends来实现,其语法与类的继承相同。被继承的类接口称为父类接口,当有多个父类接口时,用逗号“,”分隔。 接口体 接口体中包括接口中所需要说明的常量和抽象方法。,接口的实现,使用关键字implements 。 在实现一个接口时,类中对方法
39、的定义要和接口中的相应的方法的定义相匹配,其方法名、方法的返回值类型、方法的访问权限和参数的数目与类型信息要一致。 例3-10源程序名interfacetest.java,是接口的例子。,interface superinterface1 /*定义接口1*/ static final double PI=3.14; /说明常量 public double Area(); /public状态方法 interface superinterface2 /*定义接口2*/, double bulk(); /缺省状态方法 ,/*定义一个主程序类实现接口*/ public class interfacet
40、est 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*r*r*l; pub
41、lic 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中包的概念就好比Windows里的目录的概念
42、,是一层一层的关系。按照功能的分类分别存放在各个包里。,使用包是为了更好地将代码进行分别管理,首先介绍如何创建一个包,语法为: package 包名; 例如下面的程序语句。 package a.b; 创建包时有几个注意事项。 package为Java保留的关键字,不能使用别的符号进行代替。 package语句必须在第一行。 package语句只能有一个,不能有多个。 如果包有多层的话用句点”.”分隔,包的定义,包定义的一般形式为: package .; package语句通过使用“”来创建不同层次的包,这个包的层次对应于文件系统的目录结构。 例如:package java.awt.image
43、表明这个包存储在javaawtimage目录中。 在JDK环境下创建一个包,编译Java程序的命令为: javac d ,使用-d参数,编译结束后,扩展名为class的文件被存储在package语句所指明的目录中。,包名全部用小写字母,包的引入,使用关键词import语句来引入一个包 。 如果有package语句,则import语句紧接在其后,否则import语句应在程序首位。 引入import语句的一般形式: import .包名2.包名3.(类名|*); 包的访问权限 包中封装了类和其他的包, Java语言提供了许多不同级别的访问权限修饰符来控制对成员变量和成员方法的访问权限。因此,Jav
44、a语言的包中也存在访问权限问题。,例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 void main(
45、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包:包括许多具有特定功能的类,有Ar
46、rays、Date、Calendar和Stack等 。 Java.swing包:提供了创建图形用户界面元素的类。 Java.applet包:含有控制HotJava 浏览器的类。 Object类 Object类处于Java开发环境的类层次树的根部。,Object类,Object类的常用方法: clone ( ) :生成并返回当前对象的一个拷贝。 equals (Object obj):比较两个对象是否相同,结果为一布尔值。 getClass( ):返回一个对象在运行时所对应的类的表示,从而得到相关的类的信息。 finalize( ):定义回收当前对象时所需完成的清理工作。 toString( )
47、:返回描述当前对象的字符串信息。,例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 b = new In
48、teger(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):判断字符为小写格式。 isUpperCase(charc
49、h):判断字符为大写格式。 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 = new Cha
50、racter(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); /十六进制中,c代表1
51、0。 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(Strings) :将字符串s
52、转换为带符号十进制整数,结果为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( ); int i3 =
53、 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 largestLong =
54、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); System.out.pri
55、ntln(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 (); public String
56、(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):提取子串,返
57、回当前字符串的子串,该子串由beginIndex(包含在内)和endIndex(不包含在内)之间的字符组成。,String类,replace(char oldChar,char newChar):将字符串中的所有出现的oldChar用newChar替换,生成一个新字符串。 charAt(intindex):从字符串中分解字符。返回指定索引位置上的字符。索引范围在0与length()-1之间。 getChars (int srcBegin,int srcEnd,char dst ,int dstBegin):将当前字符串的部分字符拷贝到目标字符数组dst中。部分字符是指此字符串中从srcBegin(包含在内)到srcEnd(不包含在内)之间的字符。拷贝到目标字符数组中的字符从dstBegin位置开始存放。 equals (Object anObject):字符串是否相等。相等,返回true,否则返回false。,例3-16源程序名StringTest .java,public class StringTest public static void main(String args ) /常用方法 String s = your ; /your前后各有2个空格 System
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- IT系统升级项目方案书
- 废弃塑料回收利用项目策划方案
- 2026年科三说课稿写跑题了
- 小学生习惯养成精准说课稿
- 高中高考拓展竞赛基础说课稿2025
- 高中2025历史人物探究说课稿
- 第8课 人工智能安全说课稿2025学年初中信息技术浙教版2023九年级全册-浙教版2023
- 2026甘肃甘南州舟曲县招聘乡村医生33人备考题库附答案详解(精练)
- 2026福建龙岩连城文川医院招聘3人备考题库附答案详解ab卷
- 2026青海玉树州杂多县人民医院招聘合同制工作人员4名备考题库附答案详解(培优b卷)
- 岗位系数说明正式公示版
- 血液透析室(中心)的人员配置及职责
- 第四种检查器介绍
- BB/T 0066-2017聚乙烯挤出发泡包装材料
- 马克思主义基本原理第一章案例
- 07.2五年级下册道德与法治第7课《不甘屈辱 奋勇抗争》PPT教学课件(第二课时)
- 安全生产责任保险制度解读与推行
- 变电站工程构架吊装方案
- 马克思主义基本原理概论:5.3 资本主义的历史地位和发展趋势
- 全国28个省、直辖市、自治区革命老区县市名单
- 身份证标志台帐
评论
0/150
提交评论