Java方法的概念

今天学习了Java中方法的概念,并针对于前一天的练习题加强了练习,优化了一些程序,减少了其循环次数

方法的概念

引用也叫句柄,类似于指针,但是和指针是不同的。指针是一个存放地址的变量,使程序员可以灵活的访问内存,由于可以对指针进行任意的运算操作,所以给程序带来了安全隐患和意想不到的结果。引用继承了指针节省内存的优点,但是限制了对地址的操作,它是安全的。Java中所有的变量都是一个引用,java中没有指针的概念方法可以理解为一个命名的代码块,通过名称就可以重复使用这段代码,而不需要反复书写,可以达到代码重用的目的方法可以有参数,也可以没有参数;方法可以有返回值,也可以没有返回值。
定义一个方法:

public static】修饰符 返回值类型【int】 方法名称【add】(参数类型参数列表) {
    
    
    方法体
    return返回值;
}

对于定义格式的解释:
修饰符:现阶段固定为public static两个关键字
返回值类型:方法最终产生的结果数据是什么类型,这个类型必须和return的返回值类型匹配。如果并没有产生结果数据,例如仅仅只是进行一个输出显示,则返回类型为void

public static void inputNumber(int kk) {
    
    
 if (kk > 3)
 return; //因为返回类型为void,所以return后面不能跟任何内容.作
用类似于break
 System.out.println(kk);
 }
public static void main(String[] args) {
    
    
 int num1 = inputNumber(123);  //语法报错,因为方法的返回值为
void,不是int类型,所以报错.只能修改为inputNumber(123);
 System.out.println(num1);
 }

方法名称:自定义的名称,命名规则和变量一样。一般建议使用动词,首字母小写,大写字母分词
参数:是指进入方法中的数据,有了这些数据,方法才能执行逻辑。这些参数在方法内部作为一种
占位符的形式出现
例如方法定义public static long add(int begin, int end)表示调用这个方法时必须传入2个整型
的数据,否则这个方法没办法执行
在这里插入图片描述参数类型:进入方法的数据是什么类型。用于限制调用方法时传入的具体值的类型,不允许类型不匹配
在这里插入图片描述
参数名称:进入方法的数据对应的变量名称。这个名称实际没有任何价值,仅仅只是充当占位符的
作用。但是需要注意这里相当于有一个这个名称的临时变量的存在,则不能再定义同名的临时
注意:临时变量不允许重复定义—java强类型编程语言
方法体:方法内部执行的若干行代码
return:结束方法的执行,并且将返回值返还给调用处。
return 123; 表示返回结果为123,这个值将返回到调用处。当然要求返回值的类型和声明的
返回值类型一致
return; 表示从这里结束方法的执行,并返回调用处,但是没有具体的返回值。这里要求声明
时的返回值类型为void

返回值:方法最终产生的结果数据。 return res;返回值:是指从方法中出来的数据,也就是方法执 行之后的最终结果数据。 注意:

  1. 返会回值必须和返回值类型对应参数如果有多个,需要使用逗号分隔。但是返回值只能是一个【对象或者数据】参数如果没有,小括号则可以留空,但是小括号不能省略。
  2. 多个方法的定义先后顺序无所谓。不能在一个方法内部定义方法,同时方法必须定义在class内部 。
  3. 方法定义之后,没有调用就不会执行;要想执行,一定要调用它。
  4. 在方法中的特殊方法main是代码的执行起始点,但是注意方法的签名不能做任何修改,否不执行

String中的方法

String str = "a中s文sd";
for (int i = 0; i < str.length(); i++) // String中提供的length():int方法用于
获取字串中的字符个数,不区分中英文
System.out.println(str.charAt(i));// String中提供的charAt(int):char方法用于获
取指定位置的字符
String str = "asdflaskdf";
// String中提供的方法indexOf用于从左向右查找子字符串的起始位置,如果查找则返回起始位置
下标,否则返回-1
System.out.println(str.indexOf("dff"));
// String中提供的方法indexOf用于从右向左查找子字符串的起始位置,如果查找则返回起始位置
下标,否则返回-1
System.out.println(str.lastIndexOf("df"));
//substring从指定位置开始到字串结尾为止所构成的子字符串
System.out.println(str.substring(2));
//从指定位置开始到指定位置为止所构成的子字符串
System.out.println(str.substring(2, 6));

修改后的判定两个数的最大公约数和最小公倍数;

package test0105;

import java.util.Scanner;

public class Test5 {
    
    

	public static void main(String[] args) {
    
    
		Scanner sc = new Scanner(System.in);
		int k1 = input(sc);
		int k2 = input(sc);
		System.out.println("您输入的数为:"+k1+" "+k2);
		int min = Math.min(k1, k2);
		for (int i = min; i >= 1; i--) {
    
    
			if (k1 % i == 0 && k2 % i == 0) {
    
    
				System.out.println(k1 + "和" + k2 + "的最大共约数为:" + i);
				break;
			}
		}
		int begin = Math.max(k2, k1);
		int end=k1*k2;
		for (int i = begin;i<=end;i++) {
    
    
			if(i%k1==0&&i%k2==0) {
    
    
				System.out.println(k1+"和"+k2+"的最小共倍数为:"+i);
				break;
			}
		}
	}

	public static void output() {
    
    }
	public static void compute() {
    
    }
	public static  int input(Scanner sc) {
    
    
	  int k1;
		while(true) {
    
    
			System.out.println("请输入一个正整数");
			String ss = sc.nextLine();
			try {
    
    
				k1 = Integer.parseInt(ss);
				if(k1>0)
				break;
				System.out.println("不合法的数据");
			} catch (Exception e) {
    
    
				System.out.println("您输入的格式错误!");
			}
		}
		return k1;
	}	
}

猜你喜欢

转载自blog.csdn.net/Lecheng_/article/details/112251832