《Java基础PPT.pptx》由会员分享,可在线阅读,更多相关《Java基础PPT.pptx(307页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第一章 Java语言概述Java 基础知识培训基础知识培训主要内容提要Java 基础培训JavaJava程序的开发环境程序的开发环境JavaJava程序相关问题程序相关问题 JavaJava语言的主要特性语言的主要特性JavaJava语言的发展历史语言的发展历史 JavaJava程序的开发过程程序的开发过程 Java语言的发展历史Java 基础培训InternetInternet迅猛发展迅猛发展JavaJava语言正式问世语言正式问世被美国著名杂志被美国著名杂志PC PC MagazineMagazine评为评为19951995年十大优年十大优秀科技产品之一秀科技产品之一James Gosli
2、ngJames Gosling领导的领导的GreenGreen小小组开发了面向数组开发了面向数字家电的字家电的OakOak语语言言推出了推出了Java2Java2平平台。性能上有所台。性能上有所提高,而且对提高,而且对JavaJava的基本模式的基本模式进行了完善,并进行了完善,并提供了更为丰富提供了更为丰富的的APIAPI 199119951998Java2 的版本划分Java 基础培训Java2Java2J2MEJ2MEJ2SEJ2SEJ2EEJ2EEJava语言的主要特性Java 基础培训平台无关性平台无关性简单性简单性面向对象面向对象 分布式、动态性、分布式、动态性、可靠性、安全性可靠
3、性、安全性 多线程多线程Java程序相关问题Java虚拟机Java虚虚拟拟机机在真在真实实机器中用机器中用软软件模件模拟实现拟实现的一种抽象的机器。(的一种抽象的机器。(Java虚虚拟拟机机规规范)范)Java虚虚拟拟机主要由五个部分机主要由五个部分组组成:指令系成:指令系统统、寄存器、寄存器、栈栈、存、存储储区、碎片回收区区、碎片回收区解解释释和和执执行行Java程序程序编译编译后后产产生的字生的字节码节码 Java 基础培训Java程序相关问题Java APIJavaAPI是是Java系系统统提供的提供的预预先定先定义义好的好的软软件件组组件的集合,件的集合,它它们们提供了提供了许许多可供
4、程序多可供程序员调员调用的常用功能用的常用功能丰富的丰富的API为为程序程序员员提供了极大的方便,但也是学提供了极大的方便,但也是学习习的的难难点点要学会使用要学会使用JavaAPI手册手册(TheJava2PlatformAPISpecification)http:/ 基础培训Java程序相关问题 Java程序的运行机制Java 基础培训操作系统操作系统源代码可执行代码目标码编译连接运行源代码字节码编译解释执行J Javaava解释器解释器传统语言的运行机制Java语言的运行机制Java程序相关问题Java程序类型 Java应应用程序(用程序(JavaApplication)是独立完整的程序
5、是独立完整的程序在命令行在命令行调调用独立的解用独立的解释释器器软软件即可运行件即可运行主主类类必必须须有有main方法,方法,这这也是程序的入口也是程序的入口Java小程序小程序JavaApplet是指在客是指在客户户端运行的端运行的Java小程序,小程序,一般来一般来说说客客户户端是指用端是指用户户所使用的所使用的浏览浏览器器 JavaServlet是在服是在服务务器端器端执执行的行的Java小程序,小程序,为为了能了能够够支持支持Servlet的运行,服的运行,服务务器端必器端必须须安装包安装包含含Java虚虚拟拟机的服机的服务务器器软软件,件,这这种能种能够够支持服支持服务务端小端小程
6、序的服程序的服务务器一般被称器一般被称为应为应用服用服务务器器Java 基础培训Java开发环境JDK/J2SDK(JavaDeveloperKit)JDK1.02JDK1.1.xJDK1.2/J2SDK1.3/J2SDK1.4/JDK5.0(J2SDK1.5)Java集成开集成开发环发环境(境(IDE)NetBeansJBuilderEclipseJCreatorForteforJavaVisualJ+WSADJava 基础培训JDK的安装与设置从从http:/ Java 基础培训环境设置在Windows环境下,为了快速进入指定目录的命令行窗口,可在注册表中增加项目:HKEY_CLASSES
7、_ROOTDirectoryshell进入命令行command默认值设为:cmd /k cd%1Java 基础培训JDK的目录结构Java 基础培训bin目录中包含了所有目录中包含了所有JDK5.0提提供的实用程序供的实用程序demo目录中包含了目录中包含了JDK5.0自带自带的实例程序的实例程序inculde目录中包含了一些支持目录中包含了一些支持Javanative方法的方法的CC+头文头文件件jre目录中包含了目录中包含了Java运行环境运行环境所需的所有文件,这个目录中所包所需的所有文件,这个目录中所包含的含的java运行环境是运行环境是JDK私有的,私有的,它只为它只为JDK的实用程
8、序提供支持的实用程序提供支持lib目录中包含了目录中包含了Java开发环境开发环境所需的库文件,它们以所需的库文件,它们以jar文件的文件的形式保存形式保存sample目录中包含的是体现目录中包含的是体现JDK5.0新特性的一些例程新特性的一些例程JDK实用程序简介javac:Java编译编译器,将器,将Java源代源代码编译为码编译为字字节码节码;java:Java解解释释器,用来解器,用来解释执释执行行Java程序的字程序的字节码节码文件;文件;appletviewer(小程序小程序浏览浏览器器):一种:一种执执行行HTML文件上文件上的的Java小程序小程序类类的的Java浏览浏览器;器
9、;javadoc:根据:根据Java源代源代码码及其及其说说明明语语句生成的句生成的HTML文文档;档;jdb:Java调试调试器,可以逐行地器,可以逐行地执执行程序、行程序、设设置断点和置断点和检查变检查变量;量;javah:产产生可以生可以调调用用Java过过程的程的C过过程,或建立能被程,或建立能被Java程序程序调调用的用的C过过程的程的头头文件;文件;javap:Java反反汇编汇编器,器,显显示示编译类编译类文件中的可文件中的可访问访问功功能和数据,同能和数据,同时显时显示字示字节节代代码码含含义义。Java 基础培训Java程序的开发过程 编辑编辑源代源代码码编译编译源代源代码码
10、文件文件运行程序运行程序Java 基础培训Java程序的开发过程编辑源代码一般情况下,我一般情况下,我们们可以使用系可以使用系统统平台下的任何文本平台下的任何文本编辑编辑器器进进行源代行源代码码的的编辑编辑,在,在Windows平台下常用的是平台下常用的是Window系系统统自自带带的的“记记事本事本”程序或程序或“写字板写字板”程序程序Java源源码码大小写敏感大小写敏感Java源源码码文件的文件的扩扩展名:展名:.javaJava源程序文件也不能随意命名,其文件名必源程序文件也不能随意命名,其文件名必须须与程序与程序中主中主类类的的类类名完全相同,包括大小写在内名完全相同,包括大小写在内J
11、ava 基础培训publicclassMyFirstJavaApppublicstaticvoidmain(Stringargs)System.out.println(“ThisisMyFirstJavaApplication!”);Java程序的开发过程编译源代码使用使用JDK实实用程序用程序javac对对源代源代码码文件文件进进行行编译编译C:MyJavajavac MyFirstJavaApp.java如果系如果系统统提示符再次出提示符再次出现现并且没有任何消息并且没有任何消息产产生,那生,那么么编译编译便成功了便成功了如果有系如果有系统报错统报错消息消息产产生,生,则则表示程序表示程序
12、编译编译出出错错,程,程序序员员必必须阅读报错须阅读报错信息,并根据信息,并根据这这些信息些信息对对程序程序进进行行修改修改程序成功程序成功编译编译后,在与源代后,在与源代码码文件同一目文件同一目录录下会下会生成一个新的文件,其文件名与源代生成一个新的文件,其文件名与源代码码文件名相文件名相同,同,扩扩展名展名为为“.class”。这这个文件就是源代个文件就是源代码码文件文件编译产编译产生的程序字生的程序字节码节码文件文件 MyFirstJava.classJava 基础培训Java程序的开发过程运行程序 要要执执行一个行一个Java程程序非常序非常简单简单,只需,只需在字在字节码节码文件所在
13、文件所在目目录录下下输输入下列命入下列命令就可以了令就可以了:java字字节码节码文件名文件名Java 基础培训第2章 面向对象的编程概念主要内容提要Java 基础培训什么是接口什么是接口什么是继承什么是继承什么是类什么是类什么是消息什么是消息什么是对象什么是对象面向对象 vs.面向过程面向面向对对象(象(OOP)Object-OrientedProgramming用用类类class封装数据以及与数据相关的操作封装数据以及与数据相关的操作用用类类的的继继承性来承性来实现类实现类的重用性的重用性多多态态性性面向面向“对对象象”,由,由对对象提供服象提供服务务面向面向过过程(程(POP)Proce
14、dure-OrientedProgramming以功能以功能为组织单为组织单元元通通过过数据数据结结构来描述具体的构来描述具体的问题问题数据在功能数据在功能(函数函数)之之间间以参数的形式被以参数的形式被传传送送Java 基础培训现实世界中的对象现实现实世界是由世界是由对对象构成的象构成的现实现实世界中任何世界中任何实实体都可以看作是体都可以看作是对对象象现实现实世界中的世界中的对对象有两个共同特征:象有两个共同特征:状状态态行行为为Java 基础培训软件对象(Object)软软件件对对象是象是现实现实世界世界对对象的抽象象的抽象软软件件对对象同象同样样具有状具有状态态和行和行为为定定义义:对
15、对象是象是变变量和相关方法的量和相关方法的软软件件组组合合Java 基础培训变量变量方法方法现实对象软件对象Java 基础培训方法方法叫叫咬咬吃吃是否饿了:是否饿了:否否名字:小名字:小Q颜色:黑颜色:黑封装(Encapsulation)封装性体封装性体现现了面向了面向对对象程序象程序设计设计的一个特性,将的一个特性,将方法和数据方法和数据组织组织在一起,在一起,隐隐藏其具体藏其具体实现实现而而对对外外体体现现出公共的接口出公共的接口模模块块化化隐隐藏信息藏信息Java 基础培训变量变量方法方法消息(Message)复复杂杂的行的行为为必必须须通通过对过对象之象之间间的交互来的交互来实现实现软
16、软件件对对象与其它象与其它对对象象进进行交互与通行交互与通讯讯是通是通过过互互发发消息来消息来实现实现的的Java 基础培训对象B对象 A消息消息的组成消息的目的消息的目的对对象象要要执执行的方法的名称行的方法的名称方法所需参数方法所需参数Java 基础培训你的车你的车你你换档(低档)换档(低档)消息的性质同一同一对对象可接收不同形式的多个消息,象可接收不同形式的多个消息,产产生不同生不同的响的响应应同一个消息可以同一个消息可以发给发给不同的不同的对对象,所做出的响象,所做出的响应应可以截然不同可以截然不同发发送方不需要知道接受方如何送方不需要知道接受方如何对请对请求予以响求予以响应应的的Ja
17、va 基础培训类(Class)定定义义:类类是是蓝图蓝图或原型,它定或原型,它定义义了所有某种了所有某种类类的的对对象的共有的象的共有的变变量和方法量和方法类类是具有共同属性和行是具有共同属性和行为为的的对对象的抽象与集合象的抽象与集合Java 基础培训私有的实现细节私有的实现细节公共公共API实例(Instance)定定义义:特定特定类类所描述的一个所描述的一个具体具体对对象象Java 基础培训对象、类与实体的关系Java 基础培训对象类计算机逻辑的实现映射计算机世界实例化抽象实体抽象数据类现实世界概念世界抽象继承(Inheritance)广广义义地地说说,继继承是指能承是指能够够直接直接获
18、获得已有的性得已有的性质质和特和特性,而不必重复定性,而不必重复定义义它它们们。在面向。在面向对对象的象的软软件技件技术术中,中,继继承是子承是子类类自自动动地共享父地共享父类类中定中定义义的数据和方的数据和方法的机制。法的机制。Java 基础培训共性部分继承部分个性部分父类子类单重继承与多重继承单单重重继继承:一个子承:一个子类类只有一个唯一确定的父只有一个唯一确定的父类类单单重重继继承所构成的承所构成的类类的关系的关系结结构是一棵构是一棵树树多重多重继继承:一个子承:一个子类类可以有多个不同的父可以有多个不同的父类类多重多重继继承所构成的承所构成的类类的关系的关系结结构是一个格构是一个格J
19、ava语语言言仅仅支持支持单单重重继继承承Java 基础培训继承的作用使使软软件系件系统统具有开放性具有开放性更好地更好地进进行抽象与分行抽象与分类类实现实现代代码码的复用的复用提高可提高可维护维护性性Java 基础培训类型(Type)在面向数在面向数值值的的编编程中,程中,类类型通常用作数据的表示。型通常用作数据的表示。在在Java这样这样的的强强类类型型语语言中,在言中,在编译编译期,每一个期,每一个变变量和表达式都有一个量和表达式都有一个类类型与之相型与之相对应对应Java中的中的类类型:基本型:基本类类型、型、类类、接口、接口Java 基础培训接口(Interface)接口和接口和类类
20、一一样样也是一种也是一种类类型,也同型,也同样样包含一些方包含一些方法的定法的定义义。但与。但与类类不同的是:接口中所定不同的是:接口中所定义义的所的所有方法都是有方法都是抽象方法抽象方法(即没有(即没有实现实现的方法)。的方法)。接口中所定接口中所定义义的方法由的方法由实现实现(implement)该该接接口的口的类类来来实现实现,一个,一个类类可以同可以同时实现时实现多个接口多个接口接口机制使接口机制使Java的面向的面向对对象象编编程程变变得更加灵活。得更加灵活。解决了解决了单单重重继继承承带带来的来的问题问题接口定接口定义义了了对对象的行象的行为为模型,相当于一个模型,相当于一个协议协
21、议。实现实现接口的各个接口的各个类负责实现类负责实现接口所定接口所定义义的行的行为为。虽虽然然实现细节实现细节各不相同,但各不相同,但对对用用户户来来说说是一是一样样的的行行为为。Java 基础培训面向对象的示例本例中包含很多本例中包含很多对对象:点、窗口、象:点、窗口、颜颜色、点色、点击击事件事件代代码码:ClickMeApp.java,ClickMe.java,Spot.javaJava 基础培训Spot类Java 基础培训publicclassSpot/instancevariablesprivateintsize;publicintx,y;/constructorpublicSpot(
22、)x=-1;y=-1;size=1;/methodsforaccesstothesizeinstancevariablepublicvoidsetSize(intnewSize)if(newSize=0)size=newSize;publicintgetSize()returnsize;Spot对象Java 基础培训privateSpotspot=null;.spot=newSpot();示例中的消息Java 基础培训g2d.setColor(Color.WHITE);g2d.fillRect(0,0,getWidth()-1,getHeight()-1);示例中的继承和接口Java 基础培训
23、publicclassClickMeextendsJComponentimplementsMouseListener.publicclassClickMeextendsJComponentimplementsMouseListener./MethodsrequiredbytheMouseListenerinterface.publicvoidmousePressed(MouseEventevent)if(spot=null)spot=newSpot();spot.setSize(RADIUS);spot.x=event.getX();spot.y=event.getY();repaint();
24、publicvoidmouseClicked(MouseEventevent)publicvoidmouseReleased(MouseEventevent)publicvoidmouseEntered(MouseEventevent)publicvoidmouseExited(MouseEventevent)欢迎提问欢迎提问第三章 Java语言基础变量(Variable)对对象将它的状象将它的状态态存存储储在在变变量中量中定定义义:变变量是一个由量是一个由标识标识符命名的数据符命名的数据项项变变量名必量名必须须是一个合法的是一个合法的标识标识符符-一个以字母一个以字母开开头头的无限制的的无限
25、制的Unicode字符序列。字符序列。变变量的声明:量的声明:类类类类型型型型 名称名称名称名称=初始初始初始初始值值值值;inti;doublepi=3.1415926;Stringname;Java 基础培训数据类型 每个每个变变量都必量都必须须有一个数据有一个数据类类型型.一个一个变变量的数量的数据据类类型决定了它能容型决定了它能容纳纳的的值值和在它上面可以和在它上面可以进进行行什么操作。什么操作。Java编编程程语语言有两大言有两大类类数据数据类类型:型:原始原始类类型型(primitive)引用引用类类(reference)Java 基础培训Java的数据类型Java 基础培训Jav
26、atypesystemprimitivereferencecharnumericbooleanclassinterfacearrayintegerfloating-pointbyteshortintlongfloatdoubleJavatypesystemprimitivereferencecharnumericbooleanclassinterfacearrayintegerfloating-pointbyteshortintlongfloatdouble原始类型 原始原始类类型型变变量包含量包含单单个个值值,其大小和格式与它的,其大小和格式与它的类类型匹配:数字、字符或布型匹配:数字、字符
27、或布尔尔值值。Java语语言没有言没有unsigned类类型型0 xFFFF和和0 xFF谁谁大?大?Java语语言必言必须须强强制制类类型型转换转换floatf=0.1;booleanb=1;Java 基础培训引用类型数数组组,类类和接口就是引用数据和接口就是引用数据类类型型.与原始与原始类类型型变变量的量的值值不同的是,不同的是,引用引用类类型型变变量的量的值值是是对应变对应变量代表的一个量代表的一个值值或一或一组值组值的引用(也就是其地址)的引用(也就是其地址)在其他在其他语语言里引用被称言里引用被称为为指指针针或者内存地址。或者内存地址。Java不支持不支持显显示地使用地址,而是使用示
28、地使用地址,而是使用变变量的名量的名称代替。称代替。Java 基础培训变量的引用 通通过变过变量名引用量名引用变变量的量的值值简单简单名称:由名称:由单单个个标识标识符符组组成的名称成的名称限定名称:通限定名称:通过类过类名或名或对对象名引用象名引用该该类类或或对对象中象中的成的成员变员变量量System.out.println(i+spot.x);Java 基础培训作用范围 变变量的作用范量的作用范围围是可以通是可以通过简单过简单名称引用名称引用该变该变量量的程序区域的程序区域作用范作用范围围也决定了系也决定了系统为该变统为该变量量创创建和建和释释放内存放内存的的时间时间Java 基础培训例
29、子 Java 基础培训inti=10;if(i0)inti=20;System.out.println(“Thevalueofi=”+i);System.out.println(“Thevalueofi=”+i);最终变量 你可以在任意范你可以在任意范围围里将一个里将一个变变量定量定义为义为最最终变终变量量(final)最最终变终变量的量的值值一一经经初始化就不能改初始化就不能改变变类类似于似于C语语言中的常量言中的常量(const)Java 基础培训finalintaFinalVar=0;finalintblankfinal;.blankfinal=0;操作符、表达式、语句和块Java 基础
30、培训自学!自学!第四章 对象基础和简单数据对象主要内容Java 基础培训数组数组数字数字字符和字符串字符和字符串对象的生存周期对象的生存周期对象的生命周期Java 基础培训CreateObjectDeomJava 基础培训publicclassCreateObjectDemopublicstaticvoidmain(Stringargs)/创建一个创建一个Point对象和两个对象和两个Rectangle对象对象Pointorigin_one=newPoint(23,94);Rectanglerect_one=newRectangle(origin_one,100,200);Rectangler
31、ect_two=newRectangle(50,100);/显示显示rect_one的宽、高以及面积的宽、高以及面积System.out.println(Widthofrect_one:+rect_one.width);System.out.println(Heightofrect_one:+rect_one.height);System.out.println(Areaofrect_one:+rect_one.area();rect_two.origin=origin_one;/设置设置rect_tworect_two的位置的位置/显示显示rect_two的位置的位置System.out.p
32、rintln(XPositionofrect_two:+rect_two.origin.x);System.out.println(YPositionofrect_two:+rect_two.origin.y);/移动移动rect_two并且显示它的新位置并且显示它的新位置rect_two.move(40,72);System.out.println(XPositionofrect_two:+rect_two.origin.x);System.out.println(YPositionofrect_two:+rect_two.origin.y);对象的创建Java 基础培训类型名类型名 引用变
33、量引用变量=new =new 构造器构造器(构造器的参数构造器的参数)声明一个变量来引用对象为为了声明一个了声明一个变变量来引用量来引用对对象,你可以使用象,你可以使用类类或或者接口的名字作者接口的名字作为变为变量的量的类类型型声明并没有声明并没有创创建新建新对对象象。在。在对该对该引用引用变变量量赋值赋值前,前,该该引用引用为为空空,称称为为空引用空引用(null)Java 基础培训类型名类型名 引用变量引用变量=new =new 构造器构造器(构造器的参数构造器的参数)Pointorigin_one实例化对象new操作符通操作符通过为过为新新对对象分配内存来象分配内存来实实例化一个例化一个
34、类类new操作符需要一个后操作符需要一个后缀缀参数,即参数,即构造器构造器的一个的一个调调用用new操作符返回一个操作符返回一个对对它所它所创创建建对对象的引用,通象的引用,通常常该该引用被引用被赋值给赋值给具有适当具有适当类类型的引用型的引用变变量量如果如果new操作符返回的引用没有被操作符返回的引用没有被赋给赋给任何任何变变量,那量,那么当么当new操作符所在的操作符所在的语语句句执执行完后,将无法行完后,将无法访问该访问该对对象象Java 基础培训类型名类型名 引用变量引用变量=new =new 构造器构造器(构造器的参数构造器的参数)初始化对象构造器(构造器(Constructor):
35、):是一个用来是一个用来创创建建对对象的象的特殊方法,用来初始化特殊方法,用来初始化对对象的属性。象的属性。构造器的名字与构造器的名字与类类名相同名相同构造器没有返回构造器没有返回值值构造器所包含的构造器所包含的语语句用来句用来对对所所创创建的建的对对象象进进行初始化行初始化没有参数的构造器称没有参数的构造器称为为“无参构造器无参构造器”每个每个Java类类都都至少有一个至少有一个构造器,如果构造器,如果该类该类没有没有显显式式地声明任何构造器,系地声明任何构造器,系统统会默会默认认地地为该类为该类提供一个不提供一个不包含任何包含任何语语句的无参构造器句的无参构造器Java 基础培训类型名类型
36、名 引用变量引用变量=new =new 构造器构造器(构造器的参数构造器的参数)对象创建的实例Java 基础培训public class Point public int x=0;public int y=0;public Point(int x,int y)this.x=x;this.y=y;Point origin_one=new Point(23,94);问 题Java 基础培训Point origin_one=new Point(23,94);Point origin_two=new Point(23,94);oringin_one=oringin_twoPoint origin_on
37、e=new Point(23,94);Point origin_two=origin_two;oringin_one=oringin_two构造器的重载(Overload)一个一个类类可以包含多个可以包含多个构造器,构造器,这这种情况成种情况成为为构造器的重构造器的重载载同一个同一个类类中的多个构中的多个构造器通造器通过过参数的数目参数的数目及及类类型的不同来区分型的不同来区分Java 基础培训publicclassRectanglepublicintwidth=0;publicintheight=0;publicPointorigin;publicRectangle()origin=newP
38、oint(0,0);publicRectangle(Pointp)origin=p;publicRectangle(intw,inth)this(newPoint(0,0),w,h);publicRectangle(Pointp,intw,inth)origin=p;width=w;height=h;.对象的使用对对象的使用有两种方式象的使用有两种方式操作或者操作或者检查检查它的它的变变量量调调用它的方法用它的方法要使用要使用对对象的象的实实例成例成员员,首先需要得到,首先需要得到该对该对象的象的引用引用Java 基础培训变量变量方法方法实例成员与类成员实实例成例成员员包括包括实实例例变变量与
39、量与实实例方法例方法实实例成例成员员依依赖赖于于实实例存在例存在同一个同一个类类的不同的不同实实例都例都拥拥有一份有一份实实例例变变量的拷量的拷贝贝,对对某个某个实实例的例的实实例例变变量的操作不影响到其它量的操作不影响到其它实实例例实实例例变变量遵循量遵循对对象的生命周期,随着象的生命周期,随着对对象的象的创创建而建而创创建,随着建,随着对对象的消亡而消亡象的消亡而消亡必必须须通通过实过实例的引用来例的引用来调调用用实实例方法例方法类类成成员员包括包括类变类变量与量与类类方法方法类类成成员员不依不依赖赖于于实实例存在例存在同一个同一个类类的不同的不同实实例共享同一个例共享同一个类变类变量,量
40、,对类变对类变量的量的改改变变会影响到所有会影响到所有实实例例类变类变量的生存期不依量的生存期不依赖赖于于对对象,其它象,其它类类可以不用通可以不用通过过创创建建该类该类的的实实例,直接通例,直接通过类过类名名访问访问它它们们。同。同样样,类类方法也可以直接通方法也可以直接通过类过类名名访问访问。Java 基础培训实例成员与类成员Java 基础培训classABCDchardata;staticintshare_data;classDemoABCDa,b,c,d;/实例化实例化实例变量的引用简单简单名称名称当当实实例例变变量量处处在作用域内在作用域内(即即对对象的象的类类的代的代码码内内)的的
41、时时候候限定名称限定名称objectReference.variableName当当实实例例变变量量处处在作用域外在作用域外时时使用限定名称使用限定名称Java 基础培训System.out.println(Width of rect_one:+rect_one.width);System.out.println(Height of rect_one:+rect_one.height);int height=new Rectangle().height;关于变量访问的说明建建议议不要通不要通过过其它其它对对象或象或类类直接操作直接操作对对象的象的变变量量,可能引起无效可能引起无效值值理想情况下
42、理想情况下,类类会提供一些方法会提供一些方法,其他其他对对象可以通象可以通过过他他们检查们检查或修改或修改变变量,确保量,确保值值有效,而且如果有效,而且如果变变量的量的类类型和名称型和名称发发生了生了变变化,不会影响它的使化,不会影响它的使用者用者在某些情况下,可以允在某些情况下,可以允许对对许对对象象变变量的直接量的直接访问访问,以使以使类类更小更更小更简单简单,也可使,也可使变变量适用于更广泛范量适用于更广泛范围围;JAVA编编程程语语言提供了一个言提供了一个访问访问控制机制,通控制机制,通过这过这种机制,种机制,类类可以决定那些其它的可以决定那些其它的类类可以直接可以直接访问访问它的它
43、的变变量(第五章中介量(第五章中介绍绍)。)。Java 基础培训调用对象的方法使用限定名称来使用限定名称来调调用用对对象的方法象的方法objectReference.methodName(argumentList);或者objectReference.methodName();Java 基础培训System.out.println(Area of rect_one:+rect_one.area();rect_two.move(40,72);int areaOfRectangle=new Rectangle(100,50).area();关于方法调用方法被声明方法被声明为为public,就可以被
44、任何其它的,就可以被任何其它的类类所所访问访问。有。有时时,类类需要限制需要限制对对它的方法的它的方法的访问访问类类可以使用与控制可以使用与控制变变量量访问访问相同的机制来相同的机制来对对它的它的方法方法进进行行访问访问控制(第五章中介控制(第五章中介绍绍)Java 基础培训对象的清除JAVA运行运行时环时环境在当境在当对对象不再被使用的象不再被使用的时时候清除候清除它它们们,这这个个过过程就是所程就是所谓谓的的“垃圾收集垃圾收集”(garbagecollection)Java的垃圾收集器自的垃圾收集器自动扫动扫描描对对象的象的动态动态内存区,内存区,对对被引用的被引用的对对象加象加标记标记,
45、然后把,然后把没有引用的没有引用的对对象象作作为为垃圾收集起来并垃圾收集起来并释释放。放。垃圾收集器作垃圾收集器作为为一个一个线线程运行。当系程运行。当系统统的内存用的内存用尽或程序中尽或程序中调调用用System.gc()要求要求进进行垃圾收行垃圾收集集时时,垃圾收集,垃圾收集线线程与系程与系统统同步运行。否同步运行。否则则垃圾垃圾收集器在系收集器在系统统空空闲时闲时异步地异步地执执行。行。Java 基础培训无用对象的判定当某个当某个对对象不在被任何引用象不在被任何引用变变量引用量引用时时,该对该对象象是无用是无用对对象,将被清除。一般有如下两种情况:象,将被清除。一般有如下两种情况:Jav
46、a 基础培训引用变量超出了作用域引用变量超出了作用域 StringBuffer s=newStringBuffer(“thisisatest”);/超出对象作用域引用变量引用了其它对象或引用了空对象引用变量引用了其它对象或引用了空对象StringBuffer s=new StringBuffer(“test1”);s=new StringBuffer(“test2”);/引用了新的对象 s=null;/引用为空finalize()方法在在对对对对象象进进行垃圾收集前,行垃圾收集前,Java运行运行时时系系统统会自会自动调动调用用对对象的象的finalize()方法来方法来释释放系放系统资统资源
47、。源。某些情况下,程序某些情况下,程序员员可能需要可能需要实现该实现该方法来方法来释释放放不由垃圾收集器所控制的不由垃圾收集器所控制的资资源。但源。但这这种情况非常种情况非常少少见见finalize()方法是在方法是在Object中有缺省中有缺省实现实现,在用在用户户自定自定义义的的类类中,它可以被覆盖,但一般在中,它可以被覆盖,但一般在最后要最后要调调用父用父类类的的finalize()方法来清除方法来清除对对象象所使用的所有所使用的所有资资源源Java 基础培训问题一下列程序的运行结果?Java 基础培训publicclassSomethingIsWrongpublicstaticvoid
48、main(Stringargs)RectanglemyRect;myRect.width=40;myRect.height=50;System.out.println(myRectsareais+myRect.area();问题二现现有一个有一个Point和和Rectangle对对象,代象,代码执码执行后行后有多少引用指向它有多少引用指向它们们?有没有?有没有对对象需要垃圾收集象需要垃圾收集?Java 基础培训Point point=new Point(2,4);Rectangle rectangle=new Rectangle(point,20,20);point=null;字符和字符串Ja
49、vaAPI提供了三个提供了三个处处理字符数据的理字符数据的类类:Character:这这个个类类的的实实例可以容例可以容纳单纳单一的字符数一的字符数值值。该类还该类还定定义义了一些了一些简洁简洁的方法来操作或者的方法来操作或者检查检查单单一字符数据。一字符数据。String:这这个个类类用于用于处处理由多个字符理由多个字符组组成的不可成的不可变变数据。数据。StringBuffer:这这个个类类用于存用于存储储和操作由多个字和操作由多个字符符组组成的可成的可变变数据。数据。Java 基础培训字符类(Character)字符字符类类的的对对象包含象包含单单个字符个字符值值当需要使用当需要使用对对
50、象象时时,可以用字符,可以用字符对对象替代原始的象替代原始的char类类型的型的变变量量Java 基础培训字符类构造器和方法Character(char)Character类类唯一的构造唯一的构造器,它器,它创创建一个字符建一个字符对对象,其中包含由参数提供象,其中包含由参数提供的的值值,一旦,一旦创创建了建了Character对对象,它包含的象,它包含的值值就不能改就不能改变变。compareTo(Character)这这个个实实例方法比例方法比较较两个字符两个字符对对象包含的象包含的值值,这这个方法返回一个整数个方法返回一个整数值值,表示当前,表示当前对对象中的象中的值值是大于、等于是大于