Java面向对象编程基础_第1页
Java面向对象编程基础_第2页
Java面向对象编程基础_第3页
Java面向对象编程基础_第4页
Java面向对象编程基础_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、主要内容主要内容4.1 类的定义类的定义 4.2 创建类的实例对象创建类的实例对象 4.3 static关键字关键字 4.4 包包4.5 访问权限访问权限class TV int color; int height; int width; void open() void selectChannel (); void close() 计算机中的计算机中的对象的原型对象的原型 类名类名现实生活中现实生活中的对象的对象类的属性类的属性类的方法类的方法 类是组成类是组成Java程序的基本要素。程序的基本要素。 类封装了一类对象的状态和方法。类封装了一类对象的状态和方法。 类的实现包括两部分:类声明和

2、类体。类的实现包括两部分:类声明和类体。 基本格式为:基本格式为: class 类名类名 /类头类头 类体的内容类体的内容 class关键字,其后紧随类的名称(注意不要把关键字,其后紧随类的名称(注意不要把class写成写成Class)。)。 比如:比如: class People 类名必须是类名必须是Java的标识符,其首字母大写,每的标识符,其首字母大写,每个单词开头大写,其他用小写。支持个单词开头大写,其他用小写。支持Unicode字字符集。符集。 比如:比如:class BeijingTime,植物,植物 一个一个Java源程序中只能有一个主类,其类名与源程序中只能有一个主类,其类名与

3、文件名应该一致,否则编译出错。文件名应该一致,否则编译出错。类体分为两部分:一部分是变量的定义,用属类体分为两部分:一部分是变量的定义,用属性来刻画;另一部分是方法的定义,用功能来性来刻画;另一部分是方法的定义,用功能来刻画。刻画。u 变量名和方法用第一个单词用小写字母,第二个以后变量名和方法用第一个单词用小写字母,第二个以后的单词首字母大写。的单词首字母大写。 class Myself int myAge; int getMyAge() return myAge; 变量定义部分所定义的变量称为类的成员变量。变量定义部分所定义的变量称为类的成员变量。 方法体中定义的变量和方法的参数称为局部变量

4、。方法体中定义的变量和方法的参数称为局部变量。u 成员变量和局部变量的类型可以是成员变量和局部变量的类型可以是Java中的任意一中的任意一种数据类型,包括类类型,而类类型变量也称为对象。种数据类型,包括类类型,而类类型变量也称为对象。u 成员变量在整个类内都有效,而局部变量只在定义它成员变量在整个类内都有效,而局部变量只在定义它的方法内有效。的方法内有效。u 成员变量又分为实例成员变量成员变量又分为实例成员变量( (实例变量实例变量) )和类成员变和类成员变量量( (类变量类变量) )。u 如果局部变量名字与成员变量名字相同,则成员变量如果局部变量名字与成员变量名字相同,则成员变量被隐藏被隐藏

5、。class TV int channelNum; /成员变量、实例变量成员变量、实例变量 int voice = 5; void setChannel (int n) /局部变量局部变量 int i, voice = 6; /局部变量局部变量 channelNum = n; /操作成员变量操作成员变量 chVoice1 = voice; /chVoice1= 6,同局部变量同局部变量 chVoice2 = this.voice; /chVoice2 = 5,同成员变量同成员变量 i = 5; /非法,非法,i的作用范围失效的作用范围失效 class MyTV TV myTV; /对象对象 方

6、法的定义包括两部分:方法声明和方法体。方法的定义包括两部分:方法声明和方法体。 一般格式:一般格式: 返回类型返回类型 方法名方法名(参数列表参数列表) 方法体内容方法体内容 u 返回类型可以是任意的返回类型可以是任意的Java数据类型,当一数据类型,当一个方法不需要返回数据时,返回类型必须是个方法不需要返回数据时,返回类型必须是void.u 参数用逗号隔开,可以是任意的参数用逗号隔开,可以是任意的Java数据类数据类型。型。 方法重载是指一个类中可以有多个方法具有相同方法重载是指一个类中可以有多个方法具有相同的名字,当方法的参数必须不同,即参数个数或类的名字,当方法的参数必须不同,即参数个数

7、或类型不同。型不同。 注意:在注意:在C中间函数的返回类型不同也认为是不同的函数,中间函数的返回类型不同也认为是不同的函数,但是但是Java中则要求必须是参数有差异才行。中则要求必须是参数有差异才行。 构造方法是一种特性方法,它的名字必须和它所构造方法是一种特性方法,它的名字必须和它所在的类的名字完全相同,并且不返回任何数据类型在的类的名字完全相同,并且不返回任何数据类型,主要作用是完成对类对象的初始化。主要作用是完成对类对象的初始化。 注意:注意:C+中有析够函数,构造方法为对象分配了内存后中有析够函数,构造方法为对象分配了内存后一定要调用相应的析够函数释放内存。一定要调用相应的析够函数释放

8、内存。Java程序有一个程序有一个“无无用单元收集器用单元收集器”的内置程序,它扫描内存,对不再被程序引的内置程序,它扫描内存,对不再被程序引用的对象自动取消其所占的内存。用的对象自动取消其所占的内存。 类方法和实例方法类方法和实例方法class Area int r; static float pi; float getArea( float r ) /参数类型、个数不同为重载参数类型、个数不同为重载 return 3.14f*r*r; double getArea( int r) /参数名字和返回值类型不参与比较参数名字和返回值类型不参与比较 return 3.14f*r*r; int g

9、etArea( int x, int y) return x*y; Area(); /构造方法构造方法 Area(int r) this.r = r; /一个类下可能有多种构造方法一个类下可能有多种构造方法 static void setPi( float f) /类方法只能操作类变量类方法只能操作类变量 pi = f; 成员变量的操作只能在方法中进行。成员变量的操作只能在方法中进行。 比如:比如: class A int i; / 实例变量实例变量,也是成员变量也是成员变量 static float f; / 类变量类变量,也是成员变量也是成员变量 A() / 构造方法构造方法 i = 0;

10、 f = 0.0; void changeValue() / 实例方法实例方法 char c = a; / 局部变量局部变量 i = 1; / 可以操作所有成员变量可以操作所有成员变量 f = 2.0; evalue(); /可以调用类中的所有方法可以调用类中的所有方法 i = 10; /非法,成员变量只能在方法中操作非法,成员变量只能在方法中操作 static void evalue() / 类方法类方法 f = 3.0; / 只能操作类变量只能操作类变量 类中的方法可以互相调用,但类方法只能调用该类中的方法可以互相调用,但类方法只能调用该类的类方法;类的类方法; u 对象的声明对象的声明

11、一般格式:一般格式: 类的名字类的名字 对象名字对象名字 如如 : class TV; TV myTV; /类类型的成员变量类类型的成员变量u 为声明对象分配内存为声明对象分配内存 使用使用new运算符和类的构造方法为声明的对象分配运算符和类的构造方法为声明的对象分配内存。内存。 如:如:myTV = new TV();u 使用对象使用对象 使用运算符使用运算符“.”,对象可以实现对自己的变量访问,对象可以实现对自己的变量访问和方法的调用。和方法的调用。class Point int x,y; Point(int a,int b) x=a; y=b; Point() Point p1,p2;

12、声明对象变量声明对象变量p1和和p2后,后,p1和和p2的内存中还没有任何数据的内存中还没有任何数据 p1=new Point(10,20); p2=new Point(); 对象分配内存后,系统首先为各个对象分配内存后,系统首先为各个变量分配内存,完成各个变量的初变量分配内存,完成各个变量的初始化;然后将这些成员变量内存位始化;然后将这些成员变量内存位置的首地址返回给对象变量的引用。置的首地址返回给对象变量的引用。0 xAB12p12010 xy0 xAB160 xAB120 x1110p200 xy0 x11140 x1110 staticstatic称为静态修饰符,它可以修饰类中的属性和

13、方法。称称为静态修饰符,它可以修饰类中的属性和方法。称为静态属性和静态方法。为静态属性和静态方法。类属性类属性(成员变量成员变量)不用不用static修饰:实例变量修饰:实例变量用用static修饰:类变量修饰:类变量对象对象1对象对象2对象对象1.A对象对象1.B对象对象2.A对象对象2.B类变量类变量Cclass Example int A; /实例变量实例变量 int B; static int C;/类变量类变量 :Example 对象对象1;Example 对象对象2; 类的方法类的方法不用不用static修饰:实例方法修饰:实例方法用用static修饰:类方法修饰:类方法 类变量和

14、类方法都可以通过类名直接访问和调用。类变量和类方法都可以通过类名直接访问和调用。 比如:比如: Example.c 一个一个staticstatic方法只能访问其它静态成员。方法只能访问其它静态成员。 就像文件夹把各种同类型文件组织在一起,使硬盘更清就像文件夹把各种同类型文件组织在一起,使硬盘更清晰,有条理一样,晰,有条理一样,Java中的包把各种相关类组织在一起,使中的包把各种相关类组织在一起,使程序的功能清楚、结构分明。使用包有利于实现不同程序间程序的功能清楚、结构分明。使用包有利于实现不同程序间类的复用。类的复用。 u 创建包创建包使用关键字使用关键字package 声明包语句。声明包语

15、句。package语句作为语句作为Java源文件的第一条语句,指明该源文件定义源文件的第一条语句,指明该源文件定义的类所在的包。的类所在的包。package语句的一般格式为:语句的一般格式为: package 包名包名 利用这个语句就可以在当前文件夹创建一个具有指定名字的文件利用这个语句就可以在当前文件夹创建一个具有指定名字的文件夹也即包,当前夹也即包,当前.java文件中的所有类生成的文件中的所有类生成的.class都放在这个包都放在这个包中。中。 如:如:package tom.jiafei 则在当前目录下创建一个子文件夹则在当前目录下创建一个子文件夹tomjiafei API包包 描描

16、述述java.applet创建创建applet所需的类所需的类java.awt创建用户界面和绘制图形图像的类创建用户界面和绘制图形图像的类java.io利用流、系列化和文件进行利用流、系列化和文件进行I/O的类的类java.langJava语言的最基础的类语言的最基础的类java.lang.reflect提供取得类和对象反射信息的类和接口提供取得类和对象反射信息的类和接口提供用于实现网络应用的类提供用于实现网络应用的类java.sql提供访问和处理关系数据库等的提供访问和处理关系数据库等的APIjava.util包含包含Java的一些实用工具类的一些实用工具类javax.swing提供一组提供

17、一组light-weight元件,所有平台元件,所有平台u 包的引用包的引用 将类组织成包的目的是为了更好的利用包中的类。通常一个将类组织成包的目的是为了更好的利用包中的类。通常一个类只能引用与它在同一包中的类,如果需要使用其它包中的类,类只能引用与它在同一包中的类,如果需要使用其它包中的类,则可以使用如下的几种方法。则可以使用如下的几种方法。 使用包名、类名前缀使用包名、类名前缀 。加载需要使用的类。加载需要使用的类。import语句为引入运用来引入包中的类。语句为引入运用来引入包中的类。 如:如: import java.awt.Button; 加载整个包加载整个包 如:如:import

18、java.awt.*; 设置设置CLASSPATH 。 如:如:classpath = .;e:2000 “.”表示当前目录表示当前目录注意:注意:系统自动为我们引入系统自动为我们引入java.lang这个包,因此不需要再使用这个包,因此不需要再使用import语句引入该包。语句引入该包。思考:在程序中加载了某一个包,包的所有类的资源是否都可以使思考:在程序中加载了某一个包,包的所有类的资源是否都可以使用?用? 类创建了一个对象后,该对象可以通过类创建了一个对象后,该对象可以通过“.”.”运算符访问自运算符访问自己的变量,并使用类中的方法。但访问这些变量和使用类中的己的变量,并使用类中的方法。

19、但访问这些变量和使用类中的方法有一定的限制,通过使用修饰符方法有一定的限制,通过使用修饰符private、protected、public来说明访问权限。来说明访问权限。 “private”修饰私有变量和私有方法,修饰私有变量和私有方法,意味着只有意味着只有在本类中创建该类对象时,该对象才能访问自己的私有成员变在本类中创建该类对象时,该对象才能访问自己的私有成员变量和类中的私有方法量和类中的私有方法 “public”修饰共有变量和共有方法,修饰共有变量和共有方法,它们可以被它们可以被后续的定义任何类访问和引用。后续的定义任何类访问和引用。class BankCard private int money; /私有变量私有变量 BankCard() /构造函数构造函数 money=2000; private int getMoney() /私有方法私有方法 return money; /调用私有变量调用私有变量 ; public static void main(String args) BankCard newCard = new BankCard(); newCard

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论