Java语言程序设计基本语法.ppt
《Java语言程序设计基本语法.ppt》由会员分享,可在线阅读,更多相关《Java语言程序设计基本语法.ppt(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、JavaJava程序设计程序设计主讲教师:周立波主讲教师:周立波2.5 数组数组 2.5.1 数组的声明数组的声明 数组声明的格式:数组声明的格式:(1)(1)数组类型数组类型 数组名数组名 (2)(2)数组类型数组类型 数组名数组名 在数组的声明中不指定数组的长度。例在数组的声明中不指定数组的长度。例如:如:int a5 的形式是错误的。的形式是错误的。2.5.2 数组的创建与初始化数组的创建与初始化 1、用、用new关键字创建数组关键字创建数组 用用new关键字创建数组的格式:关键字创建数组的格式:new 数组类型数组类型size 2 2、获取数组的过程、获取数组的过程获得一个数组需要步:
2、第一步,定义数组变量获得一个数组需要步:第一步,定义数组变量所需的类型第二步,使用所需的类型第二步,使用newnew关键字为数组所要存关键字为数组所要存储的数据分配内存空间,并把它们分配给数组变量。储的数据分配内存空间,并把它们分配给数组变量。int x=new int100;int x=new int100;【多学两招多学两招】关于内存分配的知识关于内存分配的知识 JavaJava把内存划分成两种:一种是栈内存,一种是把内存划分成两种:一种是栈内存,一种是堆内存。堆内存。在函数中定义的一些基本类型的变量对象的引在函数中定义的一些基本类型的变量对象的引用变量都是在栈内存中分配。用变量都是在栈内
3、存中分配。堆内存用来存放由堆内存用来存放由newnew创建的对象和数组,在堆中创建的对象和数组,在堆中分配的内存由分配的内存由JavaJava虚拟机的自动垃圾回收器来管理。虚拟机的自动垃圾回收器来管理。v堆内存堆内存v栈内存栈内存 Int x v int x =new int1000 x3000 0 x0 0 x1.0 x99New int100产生的对象产生的对象.0 x3000v3、数组的初始化、数组的初始化v 数组在创建后,其元素是被系统自动进行初始数组在创建后,其元素是被系统自动进行初始化的。也可以在数组声明中直接给数组赋值。化的。也可以在数组声明中直接给数组赋值。v public c
4、lass TestArrayvpublic static void main(String args)vint x=new int10;vfor(int i=0;ix.length;i+)vSystem.out.println(x+i+=+xi);vvvv4 4、数组的长度、数组的长度 JavaJava中为所有数组设置了一个表示数组元中为所有数组设置了一个表示数组元素个数的特性变量素个数的特性变量lengthlength。访问该变量可以。访问该变量可以获取数组的长度:格式为:获取数组的长度:格式为:array.lengtharray.lengthv5 5、对象数组、对象数组 例:例:Perso
5、n p=new Person10;Person p=new Person10;v 第第4 4章章 JavaJava面向对象的特性面向对象的特性4.1 4.1 概述概述 4.1.1 Java4.1.1 Java语言的语言的OOPOOP特性特性 1.1.封装(封装(Encapsulation)Encapsulation)将对象的数据与操作数据的方法相结合,通过将对象的数据与操作数据的方法相结合,通过方法将对象的数据与实现细节保护起来,就称为封方法将对象的数据与实现细节保护起来,就称为封装。外界只能通过对象的方法访问对象,因此封装装。外界只能通过对象的方法访问对象,因此封装同时也实现了对象的数据隐藏
6、。同时也实现了对象的数据隐藏。在在JavaJava语言中,通过类这样的语言机制实现了语言中,通过类这样的语言机制实现了数据的封装与隐藏。数据的封装与隐藏。采用封装的思想保证了类内部数据结构采用封装的思想保证了类内部数据结构的完整性,应用该类的用户不能轻易直接操的完整性,应用该类的用户不能轻易直接操纵此数据结构,而只能执行类允许公开的数纵此数据结构,而只能执行类允许公开的数据。这样避免了外部对内部数据的影响,提据。这样避免了外部对内部数据的影响,提高程序的可维护性。高程序的可维护性。v2 2、继承(、继承(inheritance)inheritance)当一个类是另一个类的特例时,这两个类之间具
7、当一个类是另一个类的特例时,这两个类之间具有的父子关系,我们称之为继承。有的父子关系,我们称之为继承。子类继承了父类的状态和行为,子类还有自身的子类继承了父类的状态和行为,子类还有自身的属性和方法,继承关系减少了程序中相类似代码的属性和方法,继承关系减少了程序中相类似代码的重复说明。重复说明。继承分为单继承和多继承。继承分为单继承和多继承。JavaJava只支持类之间的只支持类之间的单继承,多继承实际上是通过接口机制来实现的。单继承,多继承实际上是通过接口机制来实现的。3 3、多态、多态(polymorphism)将父类对象应用于子类的特征就是多态。换句将父类对象应用于子类的特征就是多态。换句
8、话说就是话说就是“子类的对象指向父类的引用子类的对象指向父类的引用”。多态性允许以统一的风格编写程序,以处理种多态性允许以统一的风格编写程序,以处理种类繁多的已存在的类以及相关类。该统一风格可类繁多的已存在的类以及相关类。该统一风格可以由父类来实现,根据父类统一风格的处理,就以由父类来实现,根据父类统一风格的处理,就可以实例化子类的对象,降低维护的难度。可以实例化子类的对象,降低维护的难度。多态的实现并不依赖具体类,而是依赖于抽象多态的实现并不依赖具体类,而是依赖于抽象类和接口。其含义就是类和接口。其含义就是“对外一个接口,对内多对外一个接口,对内多种实现种实现”。v4.1.2 Java中类和
9、对象的基本概念中类和对象的基本概念 类描述了同一类对象具有的数据和行为。创建一个类描述了同一类对象具有的数据和行为。创建一个新类相当于创建了一种新的数据类型。新类相当于创建了一种新的数据类型。4.2 类的定义类的定义 4.2.1 类的基本结构类的基本结构 类有两种基本成分:成员变量和成员方法。类有两种基本成分:成员变量和成员方法。类的成员变量可以是基本类型的数据或数组,也可类的成员变量可以是基本类型的数据或数组,也可以是一个类的实例,类的方法处理该类的数据。以是一个类的实例,类的方法处理该类的数据。【注注】JavaJava中的方法与其他语言中的函数的区别中的方法与其他语言中的函数的区别 1 1
10、、方法只能是类的成员,只能在类中定义。、方法只能是类的成员,只能在类中定义。2 2、调用一个类的成员方法,实际上是对象之间的、调用一个类的成员方法,实际上是对象之间的消息传递。消息传递。vJavaJava中类定义的基本格式中类定义的基本格式 class classname class classname 类的声明类的声明 属性声明属性声明 构造方法构造方法 类类体体 成员方法成员方法 v1 1、类的声明、类的声明 类的完整声明格式:类的完整声明格式:publicpublicabstractabstractfinal final classclass classname classname ex
11、tends extends SuperclassSuperclassimplements Interfaceimplements Interface vpublicpublic指明任意类都可以访问这个类。指明任意类都可以访问这个类。(如果类声明中没有(如果类声明中没有publicpublic,则只有与该类定义在同,则只有与该类定义在同一个保中的类才可以访问这个类。)一个保中的类才可以访问这个类。)abstracabstrac指明该类是个抽象类。指明该类是个抽象类。finalfinal指明该类是个最终类,不能再派生子类。指明该类是个最终类,不能再派生子类。extends Superclassex
12、tends Superclass指明该类所继承的父类。指明该类所继承的父类。implements Interfacesimplements Interfaces指明该类所实现的接口。指明该类所实现的接口。2 2、类体、类体3 3、类的封装与信息隐藏、类的封装与信息隐藏 类的封装与信息隐藏类的封装与信息隐藏,是具体通过对类的成员限定访问权是具体通过对类的成员限定访问权限来实现的。限来实现的。JavaJava中规定的类的成员访问权限有四种:中规定的类的成员访问权限有四种:publicpublic、protectedprotected、privateprivate及默认权限。及默认权限。public
13、public成员可以被所有的类访问。成员可以被所有的类访问。privateprivate成员只能被这个类本身访问成员只能被这个类本身访问 protectedprotected成员可以被这个类本身、它的子类以及同一个保重成员可以被这个类本身、它的子类以及同一个保重的所有其它类所访问。的所有其它类所访问。类的封装与信息隐藏机制:类的封装与信息隐藏机制:使用使用privtaeprivtae权限将类的内部数据隐藏起来,只允许类自权限将类的内部数据隐藏起来,只允许类自身的方法对其操作,然后通过身的方法对其操作,然后通过public/protectedpublic/protected权限将方法作为权限将方
14、法作为类的接口裸露出来,使外界只能通过这些接口访问类的数据,类的接口裸露出来,使外界只能通过这些接口访问类的数据,从而实现了类的封装,同时也最大限度隐藏了对象的内部细从而实现了类的封装,同时也最大限度隐藏了对象的内部细节。节。v 成员变量成员变量 public|protected|privatestaticfinpublic|protected|privatestaticfinal type variableal type variablev 成员方法成员方法 1 1、成员方法的定义、成员方法的定义 (1)(1)方法的声明方法的声明 publicpublic|protectedprotecte
15、d|privateprivatestaticstaticfinfinal|abstractal|abstract returnType name returnType name(listlist)throwsthrows block block (2)(2)方法体方法体 【注注】方法体中所声明以及用到的局部变量,它的作方法体中所声明以及用到的局部变量,它的作用域只在该方法内部。用域只在该方法内部。如果局部变量的名字和类成员变量的名字相同,如果局部变量的名字和类成员变量的名字相同,则类成员变量被隐藏,如果要将类成员变量显露则类成员变量被隐藏,如果要将类成员变量显露出来,则需要在变量前加上出来,则
16、需要在变量前加上“thisthis”关键字修饰关键字修饰符。符。方法重载方法重载 方法重载允许一个类的定义中,多个方法使用方法重载允许一个类的定义中,多个方法使用相同的方法名。方法重载是面向对象程序语言多相同的方法名。方法重载是面向对象程序语言多态性的一种表现。它实现了态性的一种表现。它实现了JavaJava编译时多态。编译时多态。v public class TestOverloadingv public int add(int x,int y)v return x+y;v public int add(int x,int y,int z)v return x+y+z;v public do
17、uble add(double x,double y)v return x+y;v public static void main(String args)v int isum;double fsum;v isum=add(3,5);v isum=add(1,3,5);v fsum=add(1.23,2.3);v 方法重载必须遵循的原则:方法重载必须遵循的原则:方法的参数表必须不同。方法的参数表必须不同。方法的返回值、修饰符可以相同也可以不同方法的返回值、修饰符可以相同也可以不同 this this关键字关键字 thisthis是一个特定意义的引用,它指向当前对象是一个特定意义的引用,它指向当
18、前对象本身。本身。4.34.3 构造函数构造函数 构造函数的定义与作用构造函数的定义与作用 构造函数的特点:构造函数的特点:构造函数的名称必须与类名相同构造函数的名称必须与类名相同 构造函数不能有返回值构造函数不能有返回值 用户不能直接调用构造方法,必须通过用户不能直接调用构造方法,必须通过newnew关键字自动调关键字自动调用构造方法。用构造方法。v例子:例子:thisthis使用示例使用示例v public class MyDatev private int day,month,year;v public MyDate(int day,int month,int year)v this.d
19、ay=day;v this.month=month;v this.year=year;v public String tomorrow()v this.day=this.day+1;v return this.day+”/”+this.month+”/”+this.year;vv public static void main(String args)v MyDate d=new MyDate(12,4,2004);v System.out.println(d.tomorrow();vvv构造函数的作用:构造函数的作用:构造函数可以为类的成员变量进行初始化当一构造函数可以为类的成员变量进行初始
20、化当一个类的实例对象刚产生时,这个类的构造方法就会个类的实例对象刚产生时,这个类的构造方法就会被自动调用,我们可以在这个方法中加入要完成初被自动调用,我们可以在这个方法中加入要完成初始化工作的代码始化工作的代码 缺省的构造方法缺省的构造方法用缺省的构造方法初始化对象时,由系统用默认用缺省的构造方法初始化对象时,由系统用默认值初始化对象的成员变量值初始化对象的成员变量各种数据类型的默认值为:各种数据类型的默认值为:数值型:数值型:Boolean:falseBoolean:false 对象:对象:nullnull v class Person public Person()System.out.p
21、rintln(“bath me”);private int age=10;public void shout()System.out.println(“Im”+age+”years old”);public class TestPerson Person p1=new Person();p1.shout();Person p2=new Person();p2.shout();v 重载构造方法重载构造方法 构造方法可以重载,即定义多个构造方法,其参构造方法可以重载,即定义多个构造方法,其参数表不同。重载构造方法的目的是使对象具有不同数表不同。重载构造方法的目的是使对象具有不同的初始值,为类对象的
22、初始化提供方便。的初始值,为类对象的初始化提供方便。4.44.4 对象的生命周期对象的生命周期 一个一个JavaJava程序将包含很多对象,这些对象通过发程序将包含很多对象,这些对象通过发送消息彼此进行交互操作,实现了送消息彼此进行交互操作,实现了JavaJava程序的各种程序的各种功能。当一个对象完成了所有操作后,将被垃圾回功能。当一个对象完成了所有操作后,将被垃圾回收器收回,它所占有的资源将被回收并由系统提供收器收回,它所占有的资源将被回收并由系统提供给其他对象使用。给其他对象使用。对象的生命周期包括了对象的创建、对象对象的生命周期包括了对象的创建、对象的使用和对象回收几个阶段。的使用和对
23、象回收几个阶段。v 对象的创建对象的创建 1 1、对象创建的过程对象创建的过程 创建一个对象包括两个步骤创建一个对象包括两个步骤:(1)(1)声明对象变量声明对象变量 对象变量的声明,使得系统为该变量分配对象变量的声明,使得系统为该变量分配了一个引用空间(栈内存)。了一个引用空间(栈内存)。(2)(2)对象的实例化对象的实例化 通过使用通过使用newnew关键字进行对象的实例化。关键字进行对象的实例化。对象实例化的过程是为对象分配内存空间对象实例化的过程是为对象分配内存空间(堆内存),执行(堆内存),执行newnew关键字后的构造方法完关键字后的构造方法完成对象的初始化,并返回该对象的引用。成
24、对象的初始化,并返回该对象的引用。v2 2、创建与初始化对象的过程、创建与初始化对象的过程v 对象创建与初始化,即执行对象创建与初始化,即执行new Class()new Class()的过程的过程如下:如下:v (1)(1)首先为对象分配内存空间,并将成员变量进行首先为对象分配内存空间,并将成员变量进行初始化:数值型变量的初值为初始化:数值型变量的初值为0 0;逻辑性为;逻辑性为falsefalse;引用型变量的初值为引用型变量的初值为nullnull。v (2)(2)然后执行显式初始化,即执行在类成员变量声然后执行显式初始化,即执行在类成员变量声明时带有的简单赋值表达式。明时带有的简单赋值
25、表达式。v (3)(3)执行构造方法,进行对象的初始化。执行构造方法,进行对象的初始化。v 对象的使用对象的使用(访问访问)v 通过原点运算符通过原点运算符()可以访问对象的变量和方法可以访问对象的变量和方法.v 访问对象的变量访问对象的变量v 注注 不提倡对对象变量的直接访问不提倡对对象变量的直接访问.好的对象变量访问方式是好的对象变量访问方式是通过对象提供的通过对象提供的settersetter和和gettergetter方法对变量进行写和读方法对变量进行写和读.v 调用对象的方法调用对象的方法v 对象名对象名.方法方法 ()()v 对象的清除对象的清除v 在在JavaJava中中,采用垃
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言程序设计 基本 语法
限制150内