Java笔记——Java方法(全部)_java方法大全
·
Java方法
方法的定义
修饰符 返回值类型 方法名(参数类型 参数名){ … 方法体 return 返回值; }
修饰符 返回值类型 方法名(参数类型 参数名){
…
方法体
return 返回值;
}
方法名要注意命名规范:第一个字母小写,后面的首字母大写
方法名要注意命名规范:第一个字母小写,后面的首字母大写
public class Demo01 {
//main方法 public static是修饰符 void是返回值类型,void表示空,即不返回东西,main方法执行完就结束了
public static void main(String[] args) {
int sum = add(1, 2); //输入add(1,2) 然后alt+enter+enter即可自动生成
System.out.println(sum); //输出3
}
//加法
public static int add(int a,int b){
return a+b;
}
}
public class Demo01 {
//main方法 public static是修饰符 void是返回值类型,void表示空,即不返回东西,main方法执行完就结束了
public static void main(String[] args) {
int sum = add(1, 2); //输入add(1,2) 然后alt+enter+enter即可自动生成
System.out.println(sum); //输出3
}
//加法
public static int add(int a,int b){
return a+b;
}
}
/* public class Demo13 { public static void main(String[] args) { //练习2:用for循环输出1-1000之间能被5整除的数,并且每行输出3个 for (int i = 0; i < 1000; i++) { if(i%5==0){ System.out.print(i+"\t"); //因为是print,所以输出不换行,只有"\t"起到了tab的作用 } if(i%(5*3)==0){ System.out.println(); //print输出完不会换行 // System.out.print("\n"); //println输出完会换行 } } } } */
//可以把for循环当作一个方法
public class Demo02 {
public static void main(String[] args) {
test();
}
public static void test(){ //因为不返回任何东西,所以用void
for (int i = 0; i < 1000; i++) {
if(i%5==0){
System.out.print(i+"\t");
}
if(i%(5*3)==0){
System.out.println();
// System.out.print("\n");
}
}
}
}
//上下两个方法输出一样
/* public class Demo13 { public static void main(String[] args) { //练习2:用for循环输出1-1000之间能被5整除的数,并且每行输出3个 for (int i = 0; i < 1000; i++) { if(i%5==0){ System.out.print(i+"\t"); //因为是print,所以输出不换行,只有"\t"起到了tab的作用 } if(i%(5*3)==0){ System.out.println(); //print输出完不会换行 // System.out.print("\n"); //println输出完会换行 } } } } */
//可以把for循环当作一个方法
public class Demo02 {
public static void main(String[] args) {
test();
}
public static void test(){ //因为不返回任何东西,所以用void
for (int i = 0; i < 1000; i++) {
if(i%5==0){
System.out.print(i+"\t");
}
if(i%(5*3)==0){
System.out.println();
// System.out.print("\n");
}
}
}
}
//上下两个方法输出一样
public class Demo03 {
public static void main(String[] args) {
int max = max(10, 20);
System.out.println(max); //输出20
}
//比大小
public static int max(int num1,int num2){
int result=0;
if(num1==num2){
System.out.println("num1==num2");
return 0; //终止方法
}
if(num1>num2){
result=num1;
}else{
result=num2;
}
return result;
}
}
public class Demo03 {
public static void main(String[] args) {
int max = max(10, 20);
System.out.println(max); //输出20
}
//比大小
public static int max(int num1,int num2){
int result=0;
if(num1==num2){
System.out.println("num1==num2");
return 0; //终止方法
}
if(num1>num2){
result=num1;
}else{
result=num2;
}
return result;
}
}
方法的重载
方法重载规则:
方法名称必须相同
方法名称必须相同
参数列表必须不同(个数不同,或类型不同,或参数排列顺序不同等)
参数列表必须不同(个数不同,或类型不同,或参数排列顺序不同等)
方法的返回类型可以相同也可以不同
public class Demo01 {
//main方法 public static是修饰符 void是返回值类型,void表示空,即不返回东西,main方法执行完就结束了
public static void main(String[] args) {
int sum = add(10, 20,30); //输入add(1,2) 然后alt+enter+enter即可自动生成
System.out.println(sum); //输出3
}
//加法
public static int add(int a,int b){
return a+b;
}
public static double add(double a,double b){
return a+b;
}
public static int add(int a,int b,int c){
return a+b+c;
}
}
//想调用哪个就调用哪个,互不影响
public class Demo01 {
//main方法 public static是修饰符 void是返回值类型,void表示空,即不返回东西,main方法执行完就结束了
public static void main(String[] args) {
int sum = add(10, 20,30); //输入add(1,2) 然后alt+enter+enter即可自动生成
System.out.println(sum); //输出3
}
//加法
public static int add(int a,int b){
return a+b;
}
public static double add(double a,double b){
return a+b;
}
public static int add(int a,int b,int c){
return a+b+c;
}
}
//想调用哪个就调用哪个,互不影响
命令行传参
public class Demo04 {
public static void main(String[] args) {
//args.length数组长度
for (int i = 0; i <args.length ; i++) { //输入fori然后alt+enter+enter
System.out.println("args["+i+"]:"+args[i]);
}
}
}
/* E:\IdeaProjects\JavaSE\基础语法\src\com\qiantaomaomao\method>javac Demo04.java //右击Demo04在命令行打开,然后输入javac Demo04.java E:\IdeaProjects\JavaSE\基础语法\src\com\qiantaomaomao\method>java Demo04 //发现在这下面运行不了 错误: 找不到或无法加载主类 Demo04 原因: java.lang.NoClassDefFoundError: com/qiantaomaomao/method/Demo04 (wrong name: Demo04) E:\IdeaProjects\JavaSE\基础语法\src\com\qiantaomaomao\method>cd../ //cd../代表返回上一级 E:\IdeaProjects\JavaSE\基础语法\src\com\qiantaomaomao>cd.. E:\IdeaProjects\JavaSE\基础语法\src\com>cd../ E:\IdeaProjects\JavaSE\基础语法\src>java com.qiantaomaomao.method.Demo04 this is qiantaomaomao //需要返回到src包的时候才能执行运行命令 args[0]:this args[1]:is args[2]:qiantaomaomao */
public class Demo04 {
public static void main(String[] args) {
//args.length数组长度
for (int i = 0; i <args.length ; i++) { //输入fori然后alt+enter+enter
System.out.println("args["+i+"]:"+args[i]);
}
}
}
/* E:\IdeaProjects\JavaSE\基础语法\src\com\qiantaomaomao\method>javac Demo04.java //右击Demo04在命令行打开,然后输入javac Demo04.java E:\IdeaProjects\JavaSE\基础语法\src\com\qiantaomaomao\method>java Demo04 //发现在这下面运行不了 错误: 找不到或无法加载主类 Demo04 原因: java.lang.NoClassDefFoundError: com/qiantaomaomao/method/Demo04 (wrong name: Demo04) E:\IdeaProjects\JavaSE\基础语法\src\com\qiantaomaomao\method>cd../ //cd../代表返回上一级 E:\IdeaProjects\JavaSE\基础语法\src\com\qiantaomaomao>cd.. E:\IdeaProjects\JavaSE\基础语法\src\com>cd../ E:\IdeaProjects\JavaSE\基础语法\src>java com.qiantaomaomao.method.Demo04 this is qiantaomaomao //需要返回到src包的时候才能执行运行命令 args[0]:this args[1]:is args[2]:qiantaomaomao */
可变参数
在方法声明中,在指定参数类型后加一个省略号(…)
public class Demo05 {
public static void main(String[] args) {
Demo05 demo05 = new Demo05();
demo05.test(11,22,33,44,55,66);
}
public void test(int...i){ //可变参数
System.out.println(i[0]);
System.out.println(i[1]);
System.out.println(i[2]);
System.out.println(i[3]);
System.out.println(i[4]);
System.out.println(i[5]);
}
}
/* 输出: 11 22 33 44 55 66*/
public class Demo05 {
public static void main(String[] args) {
Demo05 demo05 = new Demo05();
demo05.test(11,22,33,44,55,66);
}
public void test(int...i){ //可变参数
System.out.println(i[0]);
System.out.println(i[1]);
System.out.println(i[2]);
System.out.println(i[3]);
System.out.println(i[4]);
System.out.println(i[5]);
}
}
/* 输出: 11 22 33 44 55 66*/
一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。
public void test(int x,int...i) //正确
public void test(int...i,int x) //错误
public void test(int x,int...i) //正确
public void test(int...i,int x) //错误
递归
自己调用自己的方法
自己调用自己的方法
包含两个部分: 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环 递归体:什么时候需要调用自身方法
包含两个部分:
递归头:什么时候不调用自身方法。如果没有头,将陷入死循环
递归头:什么时候不调用自身方法。如果没有头,将陷入死循环
递归体:什么时候需要调用自身方法
递归体:什么时候需要调用自身方法
public class Demo06 {
public static void main(String[] args) {
Demo06 test = new Demo06(); //输入new Demo06()然后alt+enter+enter,然后改变量名为test
test.test();
}
public void test(){
test();
}
}
//是递归,但是是死循环,因为没有递归头
public class Demo06 {
public static void main(String[] args) {
Demo06 test = new Demo06(); //输入new Demo06()然后alt+enter+enter,然后改变量名为test
test.test();
}
public void test(){
test();
}
}
//是递归,但是是死循环,因为没有递归头
package com.qiantaomaomao.method;
public class Demo07 {
//阶乘 例如:5!= 5*4*3*2*1=120
public static void main(String[] args) {
System.out.println(f(5)); //输出120
}
public static int f(int n){
if(n==1){
return 1;
}else{
return n*f(n-1);
}
}
}
//边界条件:边界 f(1)=1 即递归头
//前阶段 只要没到边界条件,就一直调用自身 递归体
//返回阶段 n*(n-1)
//递归能不用就不用
package com.qiantaomaomao.method;
public class Demo07 {
//阶乘 例如:5!= 5*4*3*2*1=120
public static void main(String[] args) {
System.out.println(f(5)); //输出120
}
public static int f(int n){
if(n==1){
return 1;
}else{
return n*f(n-1);
}
}
}
//边界条件:边界 f(1)=1 即递归头
//前阶段 只要没到边界条件,就一直调用自身 递归体
//返回阶段 n*(n-1)
//递归能不用就不用
作业-制作简易计算器
写一个计算器,要求实现加减乘除功能,并且能够循环接收新的数据,通过用户交互实现 写4个方法:加减乘除 利用循环+ switch进行用户交互 传递需要操作的两个数
写4个方法:加减乘除
利用循环+ switch进行用户交互
传递需要操作的两个数
package com.qiantaomaomao.method;
import java.util.Scanner;
public class Demo08 {
public static void main(String[] args){
// 在while语句里面嵌入一个switch语句,在不停循环接收用户输入的时候,判断该执行什么操作
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextDouble()){ // while语句不停循环,看是否有用户输入
double num1 = scanner.nextDouble(); // 接收用户输入的第一个数字
String symbol = scanner.next(); // 接收用户输入的计算符号
double num2 = scanner.nextDouble(); // 接收用户输入的第二个数字
switch (symbol){ // 判断用户输入的计算符号
case "+":
add(num1,num2);
break;
case "-":
sub(num1,num2);
break;
case "*":
mul(num1,num2);
break;
case "/":
div(num1,num2);
break;
default:
System.out.println("输入的符号不对!");
}
System.out.println("输出任意字母退出"); // 当输入字母是就会打破while的循环条件,从而跳出循环,结束程序
}
scanner.close();
}
//在main方法外面的方法,然后去main方法里调用
public static void add(double a, double b){ // 加法
System.out.println(a + b);
}
public static void sub(double a, double b){ // 减法
System.out.println(a - b);
}
public static void mul(double a, double b){ // 乘法
System.out.println(a * b);
}
public static void div(double a, double b){ // 除法
if (b == 0){
System.out.println("除数不能为零"); // 根据运算规则除数不能为零
}else {
System.out.println(a / b);
}
}
}
/* 输出: 3 / 4 0.75 输出任意字母退出 4 * 5 20.0 输出任意字母退出 e Process finished with exit code 0 */
package com.qiantaomaomao.method;
import java.util.Scanner;
public class Demo08 {
public static void main(String[] args){
// 在while语句里面嵌入一个switch语句,在不停循环接收用户输入的时候,判断该执行什么操作
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextDouble()){ // while语句不停循环,看是否有用户输入
double num1 = scanner.nextDouble(); // 接收用户输入的第一个数字
String symbol = scanner.next(); // 接收用户输入的计算符号
double num2 = scanner.nextDouble(); // 接收用户输入的第二个数字
switch (symbol){ // 判断用户输入的计算符号
case "+":
add(num1,num2);
break;
case "-":
sub(num1,num2);
break;
case "*":
mul(num1,num2);
break;
case "/":
div(num1,num2);
break;
default:
System.out.println("输入的符号不对!");
}
System.out.println("输出任意字母退出"); // 当输入字母是就会打破while的循环条件,从而跳出循环,结束程序
}
scanner.close();
}
//在main方法外面的方法,然后去main方法里调用
public static void add(double a, double b){ // 加法
System.out.println(a + b);
}
public static void sub(double a, double b){ // 减法
System.out.println(a - b);
}
public static void mul(double a, double b){ // 乘法
System.out.println(a * b);
}
public static void div(double a, double b){ // 除法
if (b == 0){
System.out.println("除数不能为零"); // 根据运算规则除数不能为零
}else {
System.out.println(a / b);
}
}
}
/* 输出: 3 / 4 0.75 输出任意字母退出 4 * 5 20.0 输出任意字母退出 e Process finished with exit code 0 */
更多推荐
所有评论(0)