欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Java 基础] 方法与基本输入/输出方法和基本输入/输出

最编程 2024-04-28 17:06:41
...

经过了好几天的复习之后,可能还会遗留一点点知识没有学到,但是也没有办法啦,遇到再补充吧~  今天学习的内容是Java中的方法,也有人叫它函数~(函数与方法是一个东西哈

方法是一种动作,是可以重复调用的代码段。比如我这里有几块木头,我每次想找个地方坐的时候我就把他们拿出来摆好然后坐着,但是如果我每次都要拿出来摆一下,是不是会很麻烦吗?所以我们会选择把它做成一个椅子,每次坐的时候可以直接拿椅子来坐着,省去了一块块木头摆放的繁琐。这就是方法的方便之处,我有100行代码,这里我需要用,我就得写100条,我换一个地方需要用我又得写100条,这样就会很麻烦,所以我们可以选择将这100行代码定义成一个方法,我每次用的时候只需要写这个方法就可以了~

方法的定义与声明

[修饰符] <void|返回值类型> 方法名([参数列表]) {
	方法体
	[return 返回值]
}

【注意】[]中括号里面的内容是可以省略的。如果没有返回值,那么方法名前面应写void,如果有返回值,那么写返回值类型。

public class test {

	    public static void main(String[] args) {
	        printHelloWorld();
	        printHelloWorld();
	    }
	    
	    static void printHelloWorld() {
	        System.out.println("Hello World");
	        System.out.println("I'm Ahanwhite!");
	        System.out.println("Nice to meet you.");
	    }

}

像这样,如果重复使用的一段代码比较长的话,使用方法会更方便哦~

方法的重载

方法的重载就是同样的方法名,但是参数(的类型和个数)不同。通过传递参数的个数和不同的类型可以完成不同功能的方法调用。比如我给一个参数就需要做非运算,给两个参数就要做短路与运算:

	    public static void main(String[] args) {
                boolean a = operator(1>2);
	    	boolean b = operator(2>1,1>2);
	    	System.out.println("first="+a+"\nsecond="+b);
	    }
	    
	    static boolean operator(boolean b) {
	    	return !b;
	    }
	    
	    static boolean operator(boolean a, boolean b) {
		return a&&b;
	    }

用两个变量拿到返回值,输出:

第一个operator调用的是一个参数的方法做非运算,第二个operator调用的是两个参数的方法 做短路与运算。(非和短路与看不懂的回去翻运算符哈哈哈)

这个就是方法的重载了~

那我们看一个用了很久很久的重载方法:

System.out.println(1+2);//参数1+2为int型参数
System.out.println("1"+2);//参数"1"+2为String型参数
System.out.println(1<2);//参数1<2为boolean型参数

不知道你发现没有呢(¬ω¬。)

【注意】方法重载只能是参数上的变化,比如参数类型不同、参数个数不同。不能是返回值的变化等。比如这就不叫方法重载了:

static boolean operator(boolean b) {
    return !b;
}
	    
static String operator(boolean a, boolean b) {
    return a+""+b;
}

方法的结束

一般情况下,可以使用return来结束一个方法(如果直接在return后面写会报错)

 因为报错,我们换一种方式来进行代码测试:

public class test {

	    public static void main(String[] args) {
	    	operator();
	    	System.out.println("方法已结束");
	    }
	    
	    static void operator() {//返回值为空
	    	System.out.println("return前");
			if (true) {
				return;	//因为方法返回值为空,所以这里就不能写返回值了,但是可以使用return,然后用输出语句来测试
			}
	    	System.out.println("return后");
	    }
}

so,输出结果为: ,没有return后的输出,说明方法在return执行就结束了方法,没有执行输出return后一行。

递归调用

递归调用是个很特殊的调用方式,叫自己调自己(๑╹◡╹)ノ""" 

比如(计算1加到100):

public class test {

	    public static void main(String[] args) {
	    	int a = operator(100);
	    	System.out.println("1加到100的结果为"+a);
	    }
	    
	    static int operator(int num) {
	    	if (num == 1) {
				return 1;
			}else {
				return num + operator(num-1);
			}
	    }
}

 输出结果就不用说了(~ ̄▽ ̄)~ 5050是肯定的啦~有兴趣自己尝试一下哟


常用输出语句

1. 换行输出

System.out.println(123);
System.out.println(456);
//输出结果为两行,一行为123,一行为456

2. 不换行输出

System.out.print(123);
System.out.print(456);
//输出结果为一行,为123456

3. 字节流输出

通常情况下,一个数字或字母占一个字符,一个汉字占2个字符。

System.out.write(97);
//出处为a,不换行

4. 按格式输出

System.out.printf("%+9.4f",1.23456);
//输出结果为  +1.2345
//"%" 表示进行格式化输出,"%" 之后的内容为格式的定义。
//"+" 表示输出的数带正负号。
//"9.2" 中的 9 表示输出的长度,2 表示小数点后的位数。
//"f" 表示格式化输出浮点数。
//"1.23456" 表示要输出的东西。

这里代码转自百度百科,还有其他输出格式请自行前往:百度百科—printf()

常用的输出语句

这里仅列出一个最常用的Scanner类:

首先我们需要导入Scanner包,它在java.awt包下:

// 可以导入util所有包
import java.util.*; 

//也可以单独到如Scanner单独一个类
// import java.util.Scanner;

导包之后方可正常使用,使用时我们需要先创建一个引用类型的变量,类型为Scanner。再通过对这个变量进行操作。初始化变量时需要传入参数:System.in 这个我们之后学到I/O流再讲吧~~

Scanner   scanner =  new Scanner(System.in);
System.out.println("请输入你的姓名:");
String  favor = scanner.nextLine();
System.out.println("请输入你的年龄:");
int   age = scanner.nextInt();

以上,阿里嘎多,20190424 from ahanwhite。

推荐阅读