您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 02面向对象的程序设计(下)
面向对象程序设计(下)如何调用其他的类程序练习:1定义一个类:Person2编写一个测试类:Test,在测试类中创建一个Person的对象,然后调用该对象的方法。注:自己课下进行练习!信息的隐藏(案例2-4)隐藏:指的是对象的一种保护机制,使得它的属性或方法不被外部的程序直接访问原因:使用者对对象内部定义的数据(对象的成员变量)的直接操作会导致数据的错误、混乱或安全性问题。例如:如果可以直接操作对象属性时,为age属性直接赋一个负数,这将导致逻辑上的错误产生。信息的封装(案例2-5)封装指的是将对象的状态信息(属性)和行为(方法)捆绑为一个逻辑单元的机制。Java中通过将数据封装、声明为私有的(private),再提供一个或多个公开的(public)方法实现对该属性的操作,以实现下述目的:隐藏一个类的实现细节;好处:1.防止对封装数据的未经授权的访问。使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作;2.有利于保证数据的完整性;3.便于修改,增强代码的可维护性;Java源文件的基本结构源文件的基本语法:[package_declaration][import_declarations]class_declaration+(注:+号表示一个或多个的意思)例如:packageschool;importjava.util.List;importjava.io.*;publicclassStudent{privateListTeacher;publicvoidprintSheet(Writeroutput){…}}package语句(案例2-6)package语句的语法为:•packagetop_pkg_name[.sub_pkg_name]*;举例:packagecom.gqy;publicclassHelloWorld{……}编译,2种编译方式:(1)创建相应的目录,即com\gqy,然后将HelloWorld.java文件拷贝到该目录下,最后进入到com\gqy目录中,使用下面命令编译程序:javacHelloWorld.java回退到com目录的父目录,运行程序:javacom.gqy.HelloWorld注:建议使用这种编译方式(2)将HelloWorld.java文件放在任意目录中,然后使用如下语句编译程序:javac–d.路径名\class_name.java执行程序:javacom.gqy.HelloWorld补充知识进入到com\gqy目录,然后使用如下命令执行程序:javaHelloWorld-或-javacom.gqy.HelloWorld注意分析:为什么会出现这些异常信息。结论:当JVM要装载com.gqy.HelloWorld类时,它会沿着CLASSPATH环境变量指定的路径去逐一查找,查找这些路径下是否有com目录,接着在com目录又去查找子目录gqy,最后在gqy目录中去查找HelloWorld.class。JVM在装载带有包名的类时,会先找到CLASSPATH环境变量指定的目录,再在这些目录中,按照与包名层次相对应的目录结构去查找.class文件。CLASSPATH设置的一定是指向顶层包名所对应目录的父目录(如:d:\pack),而不是指向.class文件所在的目录(如:d:\pack\com\gqy)。当一个类有了包名以后,这个类的完整类名为:包名+类名,如:com.gqy.HelloWorld顶层包的父目录(绿色字部分)为什么需要Package(包)防止类重名便于组织管理使用package的注意事项package语句必须是第一条语句,且唯一(即在同一个Java源文件只能有一条package语句),它的前面只能是注释和空行,不能是其它语句;源文件也放到包中(一定要养成这个习惯),编译完的.class文件必须放在包中class文件在目录中,”\”用于Windows系统;“/”用于(UNIX/Linux),JAVA中各层包名之间使用“.”;访问类时,可以直接使用:包名+类名的方式,例如:java.sql.Date和java.util.Date编译类时,有两种方式可以使用,参见前方PPT,建意:将Java源文件放在指定的目录中进行编译,即:第一种编译方式执行class文件时,应使用如下方式:java包名+类名注:执行时,应该在顶层包所在的父目录中运行注意分隔附import语句(案例2-7)在需要使用不同的包中的类时,使用import语句来引入所需要的类import语句的语法为:importpkg_name[.sub_pkg_name].class_name;importpkg_name[.sub_pkg_name].*;import语句编译器如何寻找import语句中指定的包或者类?在CLASSPATH指定的路径下寻找默认情况下,系统会自动引入java.lang包中的所有类思考:import是如何帮助我们编程的?注:查找CLASSPATH环境变量常用的包1.java.lang----包含一些Java语言的核心类,如:String、Math、Integer、System和Thread,提供常用功能。2.java.awt----包含了构成抽象窗口工具集(abstractwindowtoolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。3.java.applet----包含applet运行所需的一些类。4.java.net----包含执行与网络相关的操作的类。5.java.io----包含能提供多种输入/输出功能的类。6.java.util----包含一些实用工具类,如定义系统特性、使用与日期日历相关的类。面向对象编程的术语总结类(class)对一类事物的抽象描述对象(object)实际存在类的每个个体也称:实例(instance)属性(attribute)描述对象的数据元素也称:成员变量、实例变量(instancevariable)方法(method)对属性的操作构造器(constructor)创建类时使用的特殊方法包(package)用来组织和存放类小结信息的封装和隐藏Java源文件结构JDK中常用的包
本文标题:02面向对象的程序设计(下)
链接地址:https://www.777doc.com/doc-3645464 .html