第7章 方法

1、类的方法

  • 语法:

修饰限制符 返回值数据类型 方法名(){方法体;}

如:public void show(){}

  • 一个类里可以具有多个成员变量(属性),也可以有多个成员方法(方法)。

2、方法的返回值(两种情况

  • 如果方法具有返回值,方法中必须用关键字return返回该值,返回类型为该返回值的类型。(return只能返回一个表达式)

语法:return 表达式;   作用:跳出方法,返回结果

  • 如果方法没有返回值,返回类型为void。

3、方法调用

  • 方法是个“黑匣子”,完成某个特定的应用程序功能,并返回结果。
  • 方法调用:执行方法中包含的语句。
  • 语法: 对象名.方法名();
  • 注:同一个类中的方法可以直接使用方法名进行调用;不同类的方法,首先要创建对象,然后使用“对象名.方法名”来调用。
  • 方法之间允许相互调用,不允许嵌套。

4、变量的作用域

  • 变量按照作用域的不同分为全局变量(成员变量)和局部变量。
  • 变量声明的位置决定变量作用域
  • 变量作用域确定可在程序中按变量名访问该变量的区域

5、成员变量和局部变量的区别

区别|变量

成员变量

局部变量

作用域不同

成员变量的作用域在整个类内部都是可见的。

局部变量的作用域仅限于定义它的方法。

初始值不同

Java会给成员变量一个初始值

Java不会给局部变量赋予初始值

注:在同一方法中,不允许有同名局部变量;在不同方法中,可有同名局部变量。两类变量同名时,局部变量具有更高的优先级。

6、JavaDoc注释(文档注释)

  • 使用/**”开始和“*/”结束,用来注释类、属性和方法等
  • @author 用来注释作者
  • @return 用来注释返回值  

7、带基本参数的方法

(1)定义带参数的方法 

语法: 

<访问修饰符> 返回类型 <方法名>(<参数列表>){ 

  //方法主体; 

} 

例如:参数列表:(数据类型  参数1,数据类型  参数2)

  

 注: 

访问修饰符(该方法允许被访问调用的权限范围)public公共的、private私有的、protected被保护的。 

返回值数据类型,如果没有返回值就用void,使用return关键字进行返回。 

l 方法名应该是合法标识符。 

l 参数列表:可以有多个参数,每个参数要求具有一个数据类型和一个参数名。 

(2)调用带参数的方法 

语法:对象名.方法名(实参1, 实参2,……,实参n 

例如:调用方法,传递的参数要与参数列表一一对应 

 

 注:调用带参方法

 l 先实例化对象,再调用方法。 

l 实参的数据类型、数量、顺序要和形参一一对应。 

(3)在定义方法和调用方法时,我们把参数分别称为形式参数和实际参数,简称形参和实参。 

l 形参是在定义方法的时候对参数的称呼,目的是用来定义方法需要传入的参数个数和类型。 

l 实参是在调用方法时传递给方法处理的实际的值。 

形参(占位置)【定义方法】    实参(实际值)【调用方法】 

复习1、基本数据类型和引用数据类型作为方法参数,在传递时有什么不同之处?  

Answer:基本数据类型按值传递(传递的是值),相当于复制了一份过去,引用数据类型按地址传递,两个地方根据地址使用同一份数据,如被更改,则原有数据也会更改,例如数组,在传递数组时,如果接收到数组之后,对其修改,那么原来的数组也会同时修改,因为它们指向同一个地址!

8、带复杂参数的方法

 

(1)数组作为方法返回值

 

//字符串数组作为返回值

 

public String[ ] getNames(){

 

  Arrays.sort(names);

 

  return names;

 

}

 

注:返回值数据类型具有代表数组的[]return返回的只是数组名。

 

String namesbysort =new String[30];

 

namesbysort =st.getNames();

 

注:调用赋值时,也只有数组名。

 

(2)对象作为方法的参数

 

//定义一个方法时,对象作参数,【类名 对象名】

 

public float getAvg(Students stu){}

 

//调用时,使用对象.方法(实参)

 

sc.getAvg(student);

 

注:使用对象作为参数,定义方法时参数列表里是【类名 对象名】,调用方法时无区别。使用对象作为参数的好处是更好的进行封装,使得数据的整体操作更方便。

 

(3)对象数组类型的参数

 

//定义一个方法时,对象数组作参数,【类名[] 对象名】

 

public float getAvg(Students[] stu){}

 

//调用时,使用对象.方法(实参);首先创建对象数组,然后对对象数组中的所有元素进行实例化

 

Students[ ] stu = new Students[5];

 

//创建对象数组

 

for(int i=0;i<5;i++){

 

  stu[i]=new Students[];//实例化所有对象

 

  …

 

 

注:使用对象数组作为参数,只是将对象作为数组的一个元素,其引用方法与数组相同,但是每一个元素都要进行实例化,每一个元素都是对象,具有属性和方法。

 

注:调用带参方法

 

先实例化对象,再调用方法。

 

实参的数据类型、数量、顺序要和形参一一对应。

 

posted @ 2019-12-02 15:09  NAI233  阅读(146)  评论(0编辑  收藏  举报