4.5 this引用 第5章 对象的行为

公司性质的包名: com.(后面+公司名字/团队名字).(后面+项目名称).(后面+bean(公司对象)/entity/util(工具)(领域对象)后缀)
组织机构的包名: org
政府机构的包名: gov
教育机构的包名: edu
Import com.(加后缀) 。可以引用这个类
包名必须小写,不得具有负数形式

包目录结构:主要针对的是class文件的目录结构
4.5 this引用
每个对象可以使用this关键字引用它本身,他可以访问所有信息。

This代表当前类的对象的引用。

要访问一个对象的成员变量或方法就必须有一个对该对象的引用。
但是,在computerPay()方法中,我们并没有用一个引用来访问salary,
仅仅用了salary变量。这是因为编译器知道computerPay()正在访问salary成员变量,
编译器会为我们添加上引用。
那么,编译器到底添加了哪个引用呢?
computePay()需要一个引用来指明到底是哪个对象的
computePay()方法被调用,这个引用总是this引用。

4.6 使用包来组织类
Java通过引入包(package)的机制,以解决这两个问题。
在Java中,每个类属于一个包。包有两个基本的用途:
 提供了一个组织类的机制;
 为包中的类提供了一个命名空间。

 4.6.1 将类添加到包中
 在创建类时,使用关键字package就可以将类添加到包中。
 包声明必须是源代码文件中除注释以外的第一条语句。

 包payroll是不需要实例化或者物理地创建的。
 编译器看到包声明后,就会将Employee类看做是正在payroll包中,即使Employee是payroll包中的第一个类。
 4.6.2 包创建的命名空间
 包为所有类创建了一个命名空间。
 如果类在一个包含中,那么包名就成为类名的一部分,
 包名作为类名的前缀,用点运算符分隔。
包创建了命名空间,包名成为类名的前缀。
命名空间的用途是为了避免两个同名类的命名冲突。

Java SE中的很多包以java作为名称的开头,
以描述它们在标准Java语言中的角色。
Java EE中的很多包以javax作为名称的开头,
例如javax.servlet和javax.ejb。这里“x”是指扩展(extension),
指出该包是Java语言的一个扩展。

4.6.3使用import关键字导入其它包中的类
如果一个类要使用同一包中的其它类,就不需要使用包名。
同一个包中的类可以不需要特定的语法而相互找到。

如果Boss类不在payroll包中会怎么样呢?
Boss类必须使用如下几种技术之一来引用位于不同包中的类:

 使用类的全名。例如,payroll.Employee。
 使用关键字import以及通配符()导入包。例如,”import payroll.;”。
 使用关键字import导入类本身。例如”import payroll.Employee;”。

课堂讲解

栈 先进后出
队列 先进先出
Public 访问修饰符
Static 可选性质的修饰符
Void 返回类型
方法的方法名 :遵循标示符的民命规则等
(参数的参数列表)方便调入,传入参数
(参数既可以写一个,也可以写多个/参数个数可以自定义)
定义在方法参数列表上的参数,我们取名为:形参
形参: 主要用来规定改方法杯调用时,可以接收的数据的数据参数

方法调用时,实际参数必须要满足形参所定义的数据参数类型,

基本数据类型的话, 至少需要保证可以相互转换

实际参数如果是基本数据类型,和String类型,
在被调用的方法内部针对形参做任何改变,
实际参数所对应的变量都不会改变

但是,如果是应用数据内型,在被调用的方法内部针对形参做了改变,
实际参数也会能跟着改变

第5章 对象的行为

掌握类方法的声明与调用
理解方法调用栈
理解方法重载
理解构造器

5.1(了解)方法调用栈
在Java程序中,第一个被调用的方法就是main(),
该方法是JVM调用的。因此,main()方法总是在调用栈的底部。
我们之前学习流程控制
1、方法的调用
2、选择语句
3、循环语句

5.1调用方法
方法返回一个值。在这种情况下,一个基本数据类型或引用类型被传回给方法的调用者。
方法不返回一个值。在这种情况下,返回值被声明为void。
方法抛出一个异常给方法的调用者。我们将在《异常处理》一章讨论异常。
因为Java是一个严格的面向对象编程语言,所以Java中的方法只能出现在类中。在某些编程语言中,方法可以以全局的形式出现,可以在任何时候调用。在Java中,没有声明为静态(static)的方法只能在类的实例中调用。
5.3方法签名
通过查看方法的签名,我们可以了解到调用一个方法时所需知道的一切。
方法的签名包括方法名、参数列表、返回值的数据类型等信息
注意,方法的签名不包含方法体内的任何语句。签名只是方法的声明部分。
我们按照在声明方法时出现的顺序,列出方法签名中每个部分如下:

访问修饰符。访问修饰符的可能值包括public、private、protected或默认访问修饰符(即没有访问修饰符)。public访问修饰符允许从任何地方调用该方法。private访问修饰符意味着除了在类内部以外,没有人可以调用它。protected以及默认访问修饰符分别适用于继承和包,我们将在后面章节中详细讨论。
可选修饰符。方法签名的下一个部分是可选的修饰符,包括static、final、abstract、native以及synchronized。native方法用于编写一个Java访问映射到用不同编程语言编写的方法,本书不做讨论。其它修饰符我们将在后续章节中详细讲解。类的方法可以不使用这些可选修饰符,也可以使用多个修饰符。

返回值。方法签名必须包括返回值的类型。如果方法不需要返回一个值,就使用void。否则,就要指定返回值的数据类型。返回值的类型可以是八种基本数据类型之一或者一个引用类型。这意味着我们可以从方法中返回任何类型的数据,因为Java中的变量要么是八种基本数据类型之一,要么是对一个对象的引用。
方法名。方法名必须出现在返回值之后。方法名可以是任何有效的Java标识符。Java命名惯例要求方法是混合大小写的驼峰法则,即方法名的第一个单词的第一个字母为小写,其它单词的第一个字母为大写。例如,main、toString、getDay、setPreferredSize。
形式参数列表。在方法名的后面必须是用一对括号括起来的形式参数列表。方法被调用时,数据可以通过该方法的调用者传递进来。这个传递进来的数据被复制到形式参数中。一个形式参数由一个数据类型和一个标识符组成。例如,下面的方法签名声明了两个形式参数,一个是int类型,一个是float类型:
抛出的异常列表。方法可以抛出一个异常给方法的调用者。当方法中出现一个方法本身不能或者不想处理的问题时,就抛出一个异常。如果方法抛出一个受检查的异常,该异常必须在方法签名中使用throws关键字声明。在throws关键字后可以声明多个用逗号分隔的异常。例如,下面的方法签名声明该方法可以抛出两个可能的异常:

5.4形式参数和实际参数
一个方法的签名包括一个形式参数(Parameter)的列表,
形式参数列表用于声明传递到方法中的数据的类型。
传递给形式参数的数据称为实际参数(Arguement)。
当方法被调用时,实际参数必须传递给形式参数列表中的每个形式参数。
5.5按值调用
在Java中,我们不需要指定要传递的实际参数使用按值调用,
因为它是自动发生的,实际上也是唯一的选择。
其它编程语言中可能会使用按引用调用或按指针调用,
这种情况下实际参数不是复制给形式参数。
在Java中,不能用按引用调用或按指针调用。
不管传递给方法的实际参数是什么类型,相关的形式参数都会得到该数据的一份拷贝,这就是按值调用的工作原理。

猜你喜欢

转载自blog.csdn.net/qq_43039235/article/details/82152710
4.5