- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.3 方法 构造方法 调用构造方法:【ConstructorDemo.java】 1. 创建了对象之后,一般要将其赋给相应类型的变量,后者称为对象名,如第6、7、8、12行中的p1、p2、p3、demo。以后可以通过“对象名.字段名”和“对象名.方法名(实参表)”的形式访问对象的字段和方法,其中的“.”是成员访问运算符。如第18、19、20行等。 2. 没有对象名的对象称为匿名(Anonymous)对象,其只能被使用一次,如第24行。 3. 尽管ConstructorDemo类用到了Person类,但无需先编译Person.java文件——编译ConstructorDemo.java时,将自动编译Person.java。 5.3 方法 this关键字 this关键字只能用于方法内部,其表示当前对象,即调用this所在方法的那个对象。this关键字通常用于以下3种场合。 1. 访问字段和方法 ① 当字段与局部变量未重名时,在方法内可以直接访问字段,如上小节Person类中的第25行。但加上this可以增加代码的可读性,如该行可以改为“this . name = _name”,以强调赋值运算符左侧表示的是字段。 ② 若字段与局部变量重名,则必须通过this访问字段。例如,若将第24行的形参改为name——与字段name重名,则第25行必须改为“this . name = name”—— 赋值运算符左侧是字段name,右侧是形参name 。 ③ 调用同一个类的方法m时,可以直接调用,也可以加上this以增加代码可读性,如“this . m(实参表)”。 5.3 方法 this关键字 2. 在构造方法中调用其它构造方法 以this关键字调用本类构造方法的语句只能出现在构造方法中,且必须作为构造方法的第一条语句。 3. 返回当前对象 可以将this关键字放在return之后——返回当前对象。 5.3 方法 变长参数方法 C语言的printf库函数的参数个数其实就是不确定的——在调用时,可以传入任何个数的实参。 stdio.h文件中printf 的函数原型声明: 从JDK 5.0开始,Java也提供了类似的机制——可以定义形参个数不固定的方法,这样的方法称为变长参数(Variable Arguments )方法。 5.3 方法 变长参数方法 5.3 方法 变长参数方法 1. 变长参数只能出现在方法的形参中,不能将其定义为变量或字段。 2. 一个方法只能有一个变长参数,且变长参数必须是方法的最后一个形参。 3. 变长参数实际上会被编译器转换为数组。 4. 若重载的方法中,有些含有变长参数,有些没有,并且它们都能匹配某个方法调用中的实参,则优先调用没有变长参数的方法。例如,若在上述程序中增加“int getMax(int first)”方法,则14行调用的将是此增加的方法。 5. 若重载的方法均含有变长参数,并且它们都能匹配某个方法调用中的实参,则该调用存在语法错误——编译器不知道调用的是哪个方法。例如,若在上述程序中增加“int getMax(int ... varArgs)”方法,则14~16行中的方法调用均有错误。 5.3 方法 native方法 选讲或自行补全。 5.4 包 包的概念 根据功能将多个类组织到不同的目录下,这些目录被称为包(Package)。 1. 位于同一包下的多个类之间具有一定的联系,方便了项目的管理。 2. 每个类都隶属于一个包,不同包可以含有同名类,利于类的多版本维护。 3. 便于编程者快速找到一个类。例如,与I/O相关的类均位于java.io包下。 4. 包提供了某种级别的访问权限控制,具体见下节。 包是一个相对路径,其与存放所有源文件的根目录有关。 5.4 包 package语句 类所在的包并不是通过将源文件存放到某个目录做到的,而是由代码指定,这样的代码称为package(打包)语句。 【例5.10】 将PackageDemo类组织到ch05.demo包下。 5.4 包 package语句 1. package后的包名可以是多级包名,各级间通过“.”分隔,每级包名应是合法的标识符,并尽量遵守相应的命名惯例(表2-4)。 2. 类可以不含package语句,此时的类属于默认包,但一般不推荐这样做,即每个类都要有一条package语句,以显式指定其所在的包名。 3. 一个源文件最多只有1条package语句,且必须位于第1行,以分号结尾。 指定了包名之后,还必须将源文件存放到与包名相对应的目录下,并使用如下格式编译。 5.4 包 import语句 import语句用于引入
原创力文档


文档评论(0)