面向对象的程序设计(下)_第1页
面向对象的程序设计(下)_第2页
面向对象的程序设计(下)_第3页
面向对象的程序设计(下)_第4页
面向对象的程序设计(下)_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、面向对象程序设计(下),如何调用其他的类,程序练习: 定义一个类:Person 编写一个测试类:Test,在测试类中创建一个Person的对象,然后调用该对象的方法。 注:自己课下进行练习!,信息的隐藏(案例2-4),隐藏:指的是对象的一种保护机制,使得它的属性或方法不被外部的程序直接访问 原因:使用者对对象内部定义的数据(对象的成员变量)的直接操作会导致数据的错误、混乱或安全性问题。 例如:如果可以直接操作对象属性时,为age属性直接赋一个负数,这将导致逻辑上的错误产生。,信息的封装(案例2-5),封装指的是将对象的状态信息(属性)和行为(方法)捆绑为一个逻辑单元的机制。 Java中通过将数

2、据封装、声明为私有的(private),再提供一个或多个公开的(public)方法实现对该属性的操作,以实现下述目的: 隐藏一个类的实现细节; 好处: 防止对封装数据的未经授权的访问。使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作; 有利于保证数据的完整性; 便于修改,增强代码的可维护性;,Java源文件的基本结构,源文件的基本语法: + (注:+号表示一个或多个的意思) 例如: package school; import java.util.List; import java.io.*; public class Student private L

3、ist Teacher; public void printSheet(Writer output) ,package语句(案例2-6),package语句的语法为: package . * ; 举例: package com.gqy; public class HelloWorld ,编译,2种编译方式: (1)创建相应的目录,即comgqy,然后将 HelloWorld.java文件拷贝到该目录下,最后进入到comgqy目录中,使用下面命令编译程序: javac HelloWorld.java 回退到com目录的父目录,运行程序: java com.gqy.HelloWorld 注:建议使

4、用这种编译方式,(2)将HelloWorld.java文件放在任意目录中,然后使用如下语句编译程序: javac d . 路径名class_name.java 执行程序: java com.gqy.HelloWorld,补充知识 进入到comgqy目录,然后使用如下命令执行程序: java HelloWorld 或 java com.gqy.HelloWorld 注意分析:为什么会出现这些异常信息。,结论: 当JVM要装载com.gqy.HelloWorld类时,它会沿着CLASSPATH环境变量指定的路径去逐一查找,查找这些路径下是否有com目录,接着在com目录又去查找子目录gqy,最后在

5、gqy目录中去查找HelloWorld.class。JVM在装载带有包名的类时,会先找到CLASSPATH环境变量指定的目录,再在这些目录中,按照与包名层次相对应的目录结构去查找.class文件。 CLASSPATH设置的一定是指向顶层包名所对应目录的父目录(如:d:pack),而不是指向.class文件所在的目录(如:d:packcomgqy)。 当一个类有了包名以后,这个类的完整类名为:包名类名,如: com.gqy.HelloWorld,顶层包的父目录(绿色字部分),为什么需要Package(包),防止类重名 便于组织管理,使用package的注意事项,package语句必须是第一条语句

6、,且唯一(即在同一个Java源文件只能有一条package语句),它的前面只能是注释和空行,不能是其它语句; 源文件也放到包中(一定要养成这个习惯),编译完的.class文件必须放在包中 class文件在目录中,”用于Windows系统; “/”用于(UNIX/Linux), JAVA中各层包名之间使用“.”; 访问类时,可以直接使用:包名类名的方式,例如: java.sql.Date 和java.util.Date 编译类时,有两种方式可以使用,参见前方PPT,建意:将Java源文件放在指定的目录中进行编译,即:第一种编译方式 执行 class文件时,应使用如下方式: java 包名类名 注

7、:执行时,应该在顶层包所在的父目录中运行 注意分隔附,import语句(案例2-7),在需要使用不同的包中的类时,使用import语句来引入所需要的类 import 语句的语法为: import .; import .*;,import语句,编译器如何寻找import语句中指定的包或者类? 在CLASSPATH指定的路径下寻找 默认情况下,系统会自动引入java.lang包中的所有类 思考:import是如何帮助我们编程的? 注:查找CLASSPATH环境变量,常用的包,java.lang-包含一些Java语言的核心类,如:String、Math、Integer、System和Thread,提供常用功能。 java.awt-包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。 java.applet-包含applet运行所需的一些类。 -包含执行与网络相关的操作的类。 java.io-包含能提供多种输入/输出功能的类。 java.util-包含一些实用工具类,如定义系统特性、使用与日期日历相关的类。,面向对象编程的术语总结,类(class)对一类事物的抽象描述 对象(object)实际存在类的每个个体 也称:实例(instance) 属性(attribute)描述对象的数据元素 也

温馨提示

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

评论

0/150

提交评论