20162322朱娅霖

导航

 

Java语言基础——方法

0.目录

7.方法

7.方法

7.0 编程练习(方法)

``` public class HelloWorld {
//完成 main 方法
public static void main(String[] args) {
    
    // 创建对象,对象名为hello
	HelloWorld hello = new HelloWorld(); 
    
    // 调用方法并将返回值保存在变量中
    int maxScore = hello.getMaxAge();
    
	// 输出最大年龄
	System.out.println("最大年龄为:" + maxScore); 
}

/*
 * 功能:输出学生年龄的最大值 
 * 定义一个无参的方法,返回值为年龄的最大值
 * 参考步骤:
 * 1、定义一个整形数组 ages ,保存学生年龄,数组元素依次为 18 ,23 ,21 ,19 ,25 ,29 ,17
 * 2、定义一个整形变量 max ,保存学生最大年龄,初始时假定数组中的第一个元素为最大值
 * 3、使用 for 循环遍历数组中的元素,并与假定的最大值比较,如果比假定的最大值要大,则替换当前的最大值
 * 4、使用 return 返回最大值
 */
public int getMaxAge() {
int[] ages = {18,23,21,19,25,29,17};
int max = 0;

for(int i:ages)
{
    max = max>=i ? max : i;
}

return max;
}

}


import java.util.Arrays;

public class HelloWorld {
public static void main(String[] args) {

     // 创建对象,对象名为hello
	HelloWorld hello = new HelloWorld();
    
    // 调用方法并将返回值保存在变量中
	int[] nums = hello.getArray(8);
    
    // 将数组转换为字符串并输出
	System.out.println(Arrays.toString(nums)); 
}

/*
 * 功能:创建指定长度的int型数组,并生成100以内随机数为数组中的每个元素赋值
 * 定义一个带参带返回值的方法,通过参数传入数组的长度,返回赋值后的数组
 */
public int[] getArray(int length) {
    // 定义指定长度的整型数组
	int[] nums = new int[length];
    
    // 循环遍历数组赋值
	for ( int i=0;i<nums.length;i++ ) {
        
		// 产生一个100以内的随机数,并赋值给数组的每个成员
	nums[i] = (int)(Math.random()*100);
    
	}
	return nums; // 返回赋值后的数组
}

}

<h3 id="7.1"> 7.1 定义Java中的方法 </h3>
> 所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块。

语法:

访问修饰符 返回值类型 方法名(参数列表){
方法体
}

1. 访问修饰符:方法允许被访问的权限范围, 可以是 public、protected、private 甚至可以省略 ,其中 public 表示该方法可以被其他任何代码调用,其他几种修饰符的使用在后面章节中会详细讲解滴

2. 返回值类型:方法返回值的类型,如果方法不返回任何值,则返回值类型指定为 void ;如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 return 语句返回值

3. 方法名:定义的方法的名字,必须使用合法的标识符

4. 参数列表:传递给方法的参数列表,参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名组成,以空格隔开

<h3 id="7.2"> 7.2 Java 中无参无返回值方法的使用 </h3>
方法的使用分两步:
- 第一步,定义方法
**注意:**
1. 方法体放在一对大括号中,实现特定的操作
2. 方法名主要在调用这个方法时使用,需要注意命名的规范,一般采用第一个单词首字母小写,其它单词首字母大写的形式
- 第二步,调用方法
当需要调用方法执行某个操作时,可以先***创建类的对象*** ` 类名 对象名 = new 类名(); `,然后通过 ` 对象名.方法名(); ` 来实现

举个例子:

public class HelloWorld {

public static void main(String[] args) {
	// 创建对象,对象名为hello
	HelloWorld hello = new HelloWorld();
	// 调用方法
	hello.showMyLove();
}

/*
 * 定义无参无返回值的方法
 */
public  void  showMyLove() {
	System.out.println("I love the world !");
}

}

<h3 id="7.3"> 7.3 Java 中无参有返回值方法的使用 </h3>
> 调用带返回值的方法时需要注意,由于方法执行后会返回一个结果,因此在调用带返回值方法时一般都会接收其返回值并进行处理。

**注意:**
1. 如果方法的返回类型为 void ,则方法中不能使用 return 返回值!
2. 方法的返回值最多只能有一个,不能返回多个值
3. 方法返回值的类型必须兼容,例如,如果返回值类型为 int ,则不能返回 String 型值

举个例子:

public class HelloWorld {

public static void main(String[] args) {
    
	// 创建名为hello的对象
	HelloWorld hello = new HelloWorld();
    
	// 调用hello对象的calcAvg()方法,并将返回值保存在变量avg中
	double avg = hello.calcAvg();
    
	System.out.println("平均成绩为:" + avg);
}

// 定义一个返回值为double类型的方法
public double  calcAvg() {
    
	double java = 92.5;
	double php = 83.0;
	double avg = (java + php) / 2; // 计算平均值
    
	// 使用return返回值
    return avg;
    
}

}

<h3 id="7.4"> 7.4 Java 中有参无返回值方法的使用 </h3>
> 有时方法的执行需要依赖于某些条件,换句话说,要想通过方法完成特定的功能,需要为其提供额外的信息才行。我们可以通过在方法中加入参数列表接收外部传入的数据信息,参数可以是任意的基本类型数据或引用类型数据。

调用带参方法与调用无参方法的语法类似,但在调用时必须传入实际的参数值
` 对象名.方法名(实参1,实参2,...); `
> 很多时候,我们把*定义方法时*的参数称为**形参**,目的是用来定义方法需要传入的参数的个数和类型;把*调用方法时*的参数称为**实参**,是传递给方法真正被处理的值。

**注意:**
1. 调用带参方法时,必须保证实参的数量、类型、顺序与形参一一对应
2. 调用方法时,实参不需要指定数据类型
3. 方法的参数可以是基本数据类型,如 int、double 等,也可以是引用数据类型,如 String、数组等
4. 当方法参数有多个时,多个参数间以逗号分隔

举个例子:

/*
* 功能:计算两门课程考试成绩的平均分并输出平均分
* 定义一个包含两个参数的方法,用来传入两门课程的成绩
*/

public void calcAvg(int num1,int num2){
    int avg = (num1 + num2)/2;
    System.out.println("平均分:" + avg );
}
<h3 id="7.5"> 7.5 Java 中有参有返回值方法的使用 </h3>

import java.util.Arrays;

public class HelloWorld {
public static void main(String[] args) {
HelloWorld hello = new HelloWorld();
int[] scores={79,52,98,81};

	//调用方法,传入成绩数组,并获取成绩的个数
	int count= hello.sort(scores);
    
	System.out.println("共有"+count+"个成绩信息!");
}

/*
 * 功能:将考试成绩排序并输出,返回成绩的个数
 * 定义一个包含整型数组参数的方法,传入成绩数组
 * 使用Arrays类对成绩数组进行排序并输出
 * 方法执行后返回数组中元素的个数
 */
public int sort( int scores[] ){
	Arrays.sort(scores);
	System.out.println(Arrays.toString(scores));
	
    //返回数组中元素的个数
    return scores.length;
}

}


<h3 id="7.6"> 7.6 方法重载 </h3>
> 问: 什么是方法的重载呢?
> 答: 如果同一个类中包含了*两个或两个以上方法名**相同***、*方法参数的个数、顺序或类型**不同***的方法,则称为方法的重载,也可称该方法被重载了。

> 问: 如何区分调用的是哪个重载方法呢?
> 答: 当调用被重载的方法时, Java 会根据***参数的个数和类型***来判断应该调用哪个重载方法,参数完全匹配的方法将被执行。

举个例子:

public class HelloWorld {
public static void main(String[] args) {

	// 创建对象
	HelloWorld hello = new HelloWorld();

	// 调用无参的方法
	hello.print();

	// 调用带有一个字符串参数的方法
    hello.print("20162322");

	// 调用带有一个整型参数的方法
    hello.print(20162322);
}

public void print() {
	System.out.println("无参的print方法");
}

public void print(String name) {
	System.out.println("带有一个字符串参数的print方法,参数值为:" + name);
}

public void print(int num) {
	System.out.println("带有一个整型参数的print方法,参数值为:" + num);
}

}

posted on 2017-08-20 11:10  竹蕴澜  阅读(127)  评论(0编辑  收藏  举报