头歌(educoder)第 4 章 Java入门之方法 Java入门 - 方法的使用

目录

第1关:如何定义方法

第2关:掌握无参有返回值方法的调用

第3关: 掌握有参数无返回值方法的调用

第4关:掌握有参数有返回值方法的调用

第5关:掌握数组作为参数的使用

第6关:方法的重载

第7关:选择题​编辑

 第8关:方法通关挑战


第1关:如何定义方法

package step1;

public class HelloWorld {
	/********** Begin **********/
public static void hello(){
    System.out.println("hello teacher!");
}
    //定义一个方法,用来和老师打招呼

	/********** End **********/	
    public static void main(String[] args) {

		/********** Begin **********/	
		hello();
        //调用方法 

		/********** End **********/
    }
}

第2关:掌握无参有返回值方法的调用

package setp7;
public class HelloWorld {

    public static void main(String[] args) {
		/********** Begin **********/

        // 调用calcAvg()方法,并将返回值保存在变量avg中
        double avg =calcAvg();

		/********** End **********/
    	System.out.println("平均成绩为:" + avg);
    }

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


	/********** End **********/
    }
}

第3关: 掌握有参数无返回值方法的调用

package setp9;

import java.util.Scanner;

public class HelloWorld {
    public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int score1 = sc.nextInt(); //第一门成绩
		int score2 = sc.nextInt(); //第二门成绩
		/********** Begin **********/
        // 调用方法,传入两门课程的成绩
        calcAvg(score1,score2);
		/********** End **********/
    }

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

	/********** Begin **********/
public static void calcAvg(int score1,int score2){
  int score=0;
score=(score1+score2)/2;
System.out.println("平均分:"+score);
}

	/********** End **********/

}

第4关:掌握有参数有返回值方法的调用

package step3;

import java.util.Scanner;

public class HelloWorld {
    public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int i = sc.nextInt();   //获取第一个输入的整数
        int j = sc.nextInt();	//获取第二个输入的整数
		
		/********** Begin **********/
		//在这里调用方法获取返回值
int a =getMax(i,j);
        System.out.println( i+"和"+j+"比较,最大值是:"  +   a );
		/********** End **********/
    }

	/*在这里创建getMax方法,以两个整数作为参数,返回两个整数中较大的值*/
    
	/********** Begin **********/
	public static int getMax(int x,int y){
		if(x>y)
		return x;
		else return y;

	}

    /********** End **********/
}

第5关:掌握数组作为参数的使用

package setp10;
import java.util.Arrays;

public class HelloWorld {
    public static void main(String[] args) {
     
        int[] scores={79,52,98,81};
		/********** Begin **********/
        //调用方法,传入成绩数组,并获取成绩的个数
        int count=sort(scores);
        
		/********** End **********/
        System.out.println("共有"+count+"个成绩信息!");
    }

    /*
     * 功能:将考试成绩排序并输出,返回成绩的个数
     * 
     */
	/********** Begin **********/	
    public static int sort(int[] data){
       // 数组从小到大排序处理
       
for(int i=0;i<data.length-1;i++){
    for(int j=i+1;j<data.length;j++){      
    if(data[i]>data[j])
     {
        int temp=data[i];
       data[i]=data[j];
       data[j]=temp;
       }
    }
}
       // 打印出数组
System.out.println(Arrays.toString(data));
       //返回数组中元素的个数
return 4;
    }
	/********** End **********/
}

第6关:方法的重载

package setp15;

/**
 * @author tangzhiqiang
 * @date 2018-04-25 22:31
 */
public class HelloWorld {
    public static void main(String[] args) {

		/********** Begin **********/
        // 调用无参的方法
print();
        // 调用带有一个字符串参数的方法	
print("educoder") ;       // 调用带有一个整型参数的方法
print(666);
        /********** End **********/
    }

    /********** Begin **********/
    // 无参print方法的定义
public static void print(){
    System.out.println("无参的print方法");
}
    
    // 字符串print方法的定义

    public static void print(String name){
        System.out.println("带有一个字符串参数的print方法,参数值为:"+name);
    }
    // 整型print方法的定义
public static void print(int a){
    System.out.println("带有一个整型参数的print方法,参数值为:"+a);
}
	
    /********** End **********/
}

第7关:选择题

 第8关:方法通关挑战

package setp17;

import java.util.Arrays;
import java.util.Scanner;

public class HelloWorld {
	
    /********** Begin **********/
    /**
     * 第一题:定义一个方法 接收两个整数类型的参数 a和b,返回两个数的和  返回值类型为int 方法名为:getSum
     */
public static int getSum(int a ,int b){
        int sum = a + b;
        return sum;}


    /**
     * 第二题: 定义一个方法 接收三个double类型参数a,b,c, 返回这三个数的平均值 返回值类型为double 方法名为:getAvg
     */

public static double getAvg(double a ,double b,double c){
        double avg = (a + b + c) / 3;
        return avg;}

    /**
     * 第三题: 定义一个方法 接收两个参数 a 和b 打印a行 b列的一个矩形  不需要返回值   方法名为:printRect
     */
 public static void printRect(int a , int b){
        for (int i = 1 ; i <= a ;i++) {
            for (int k = 1 ; k <= b;k++){
                System.out.print("*");
            }
            System.out.println();
        }
    }


	
	/**
	 * 第四题:定以一个方法,接收整形数组 为参数  对这个数组进行升序排序  最后输出该数组 不需要返回值 方法名为 sortArr  
	 */
 public static void sortArr(int[] arr){
        for(int i = 0; i< arr.length-1;i++){
            for(int j = i+1; j< arr.length;j++){
                if(arr[i] > arr[j]){
                     int tmp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = tmp;
                }
            }
        }
        for(int i = 0; i< arr.length;i++){
                System.out.println(arr[i]);
        }}


	
    /**
     *  第五题
     * 你只需要实现for 循环括号的内容就可 ,打印语句系统已经给你完成 
     */
    public static void Print99() {
        for (  int i = 1 ; i<=9;i++ ) {
            for(   int j = 1;j <= i ;j++) {
                System.out.print(j + " * " + i + " = " + i * j + "\t");
            }
            System.out.println();
        }
    }

    /********** End **********/
    
    
}	

<think>好的,用户想学习Java方法的基本用法,特别是第7关的解析。首先,我需要理解用户的具体需求。根据用户提供的引用内容,特别是引用[1]中的代码片段,用户可能是在学习Java的封装、继承和多态,以及方法的定义和使用。 首先,用户提到的第7关可能涉及到Java方法的参数、返回值、构造方法以及封装的概念。需要检查用户提供的引用内容,特别是引用[1]中的Students类,其中有无参构造方法和action方法。此外,引用[3]提到了多参数方法的定义,这可能也是第7关的一部分。 接下来,需要按照系统级指令的要求,使用正确的中文回答,结构清晰,分步骤解释。同时,要确保所有数学表达式和代码格式正确。用户的问题是关于Java方法使用,所以重点应放在方法的定义、参数传递、返回值、构造方法以及封装上。 需要确认用户提供的引用内容中的代码是否正确。例如,引用[1]中的Students类是否有构造方法,action方法的定义是否正确。注意到代码中的构造方法可能有问题,因为代码中有一个注释说“无参构造”,但实际代码中可能没有显式的构造方法Java会默认提供一个无参构造,但如果存在其他构造方法,则需要显式定义。 另外,引用[3]中的test方法示例展示了多参数的情况,这可能用于说明方法参数的用法。用户可能需要了解如何定义带有多个参数的方法,以及如何调用它们。 在回答中,需要分步骤解释方法的定义、参数、返回值,并结合示例代码进行说明。同时,要提到封装的概念,因为引用[1]中提到了封装、继承、多态,而第7关可能重点在封装。 然后,生成相关问题,这些问题应该与Java方法使用、封装、参数处理等相关,帮助用户进一步巩固知识。 最后,确保所有引用的内容正确标注,例如引用[1]中的封装部分,引用[3]的多参数方法等。</think>### Java方法基础与第7关解析 #### 一、方法定义与调用基础 1. **方法结构** 方法由访问修饰符、返回值类型、方法名、参数列表和方法体组成。例如引用[3]中的多参数方法: ```java public static int test(int number1, int number2) { System.out.println("内部逻辑"); return 0; //需与返回值类型匹配 } ``` 参数间用逗号分隔,返回值类型为`int`,需用`return`返回对应类型数据[^3]。 2. **无参方法与调用** 引用[1]中`action()`方法为无参方法,调用时直接使用`A.action()`: ```java void action() { System.out.println("疯狂学习Java编程知识!"); } ``` --- #### 二、构造方法与对象初始化 1. **无参构造方法** 引用[1]中`Students A = new Students()`调用了隐式无参构造方法。若需自定义初始化逻辑,需显式定义: ```java public Students() { this.name = "默认姓名"; this.age = 18; } ``` 2. **封装实践** 封装要求将属性设为`private`并通过方法访问,如引用[1]提到的封装原则: ```java private String name; public void setName(String name) { this.name = name; } ``` --- #### 三、第7关核心知识点 1. **多参数方法实现** 需按规范声明多个参数,例如计算两数之和: ```java public static int add(int a, int b) { return a + b; } ``` 2. **返回值匹配** 若方法声明了返回值类型(非`void`),必须返回对应类型数据,例如: ```java public String getName() { return this.name; //返回String类型 } ``` 3. **方法调用链** 可通过对象连续调用方法,如: ```java A.setName("代码贩子、").setAge(24).action(); ``` --- #### 四、常见问题解析 1. **参数数量不匹配错误** 调用方法时需传入与声明参数数量一致的值,否则编译报错。 2. **未定义构造方法的陷阱** 若类中已定义带参构造方法,则需显式添加无参构造方法才能使用`new Students()`[^1]。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值