Java基础day03-方法

2021/4/25 22:25:18

本文主要是介绍Java基础day03-方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

方法

定义类方法才能直接调用

类方法(+static)

修饰符 返回值类型(空:void) 方法名(参数类型(形参、实参) 参数名){

方法体

}

简单的比大小装置

import java.util.Scanner;
public class demo {
 public static void bidaxiao() {
     System.out.println("请输入");
     Scanner scanner = new Scanner(System.in);
     int a = scanner.nextInt();
     int b =4;
     if (a > b) {
         System.out.println("max:a");
     } else if (a<b){
         System.out.println("max:b");
     }else{
         System.out.println("same");
     }
 }
​
 public static void main(String[] args) {
     bidaxiao();
 }
}

重载

​
重载就是在一个类中,有相同的函数名称,但是形参不同的函数。
//            1. 方法名称必相同
//            2.参数列表必须不同
//            3.饭分会类型可以不同也可以相同
//            4.仅仅返回值类型不同不足以成为方法的重载
//            5.方法名相同时编译器会调用方法的参数个数参数类型等去逐一匹配

可变参数

在参数声明后加一个省略号(...)

一个方法中只能指定一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在它之前声明

public class Demo {
 public static void test(int x,int...b){
     for (int i = 0; i < 10; i++) {
         System.out.println(b[i]);
     }
 }
 public static void main(String[] args) {
     Demo demo = new Demo();
     demo.test(1,2,3,4,5,6,7,8,9,10,11);
 }
}

求最大值玩一下

public class Demo {
 public static void main(String[] args) {
     test(1,2,3,4,5,6,7,8,9);
​
 }
 public static void test(int...a){
     int result=a[0];
     for (int i = 0; i < a.length; i++) {
         if(a[i]>result){
             result=a[i];
         }
     }
     System.out.println(result);
     }
​
 }

递归!!!!

优点:递归可以调用本身来减少代码量,将复杂问题层层转换为小问题解决

递归头(什么时候不调用自身方法,没有头就会陷入死循环)

递归体(什么时候要调用自身方法)

阶乘

public class Demo {
 public static int f(int n){
     if(n==1){
         return 1;
     }else{
         return n*f(n-1);
     }
 }
 public static void main(String[] args) {
     System.out.println(f(3));
 }
​
}

小测验

完成一个计算器编码的实现,不要求写出界面,但要有实现加减乘除

采用循环+switch进行用户交互

import javax.swing.; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class Calculator extends JFrame implements ActionListener { private String[] KEYS={"7","8","9","","4","5","6","-","1","2","3","+","0","e","π","÷","c","%",".","=","(",")","sqr","xx"}; private JButton keys[]=new JButton[KEYS.length]; private JTextField resultText = new JTextField("0.0"); private String b=""; public Calculator() { super("计算器"); this.setLayout(null); resultText.setBounds(20, 5, 255, 40); resultText.setHorizontalAlignment(JTextField.RIGHT); resultText.setEditable(false); this.add(resultText); int x=20,y=55; for (int i=0;i<KEYS.length;i++) { keys[i] = new JButton(); keys[i].setText(KEYS[i]); keys[i].setBounds(x, y, 60, 40); if(x<215) { x+=65; } else { x = 20; y+=45; } this.add(keys[i]); } for (int i = 0; i <KEYS.length; i++) { keys[i].addActionListener(this); } this.setResizable(false); this.setBounds(500, 200, 300, 400); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setVisible(true); } public void actionPerformed(ActionEvent e) { String label = e.getActionCommand(); if (label=="c"||label=="=") { if(label=="=") { String s[]=yunsuan(this.b); String result=Result(s); this.b=result+""; resultText.setText(this.b); } else { this.b=""; resultText.setText("0"); } } else if (label=="sqr") { String n=yunsuan2(this.b); resultText.setText(n); this.b=n; } else if(label=="xx") { String m=yunsuan3(this.b); resultText.setText(m); this.b=m; } else if(label=="e"||label=="π") { if (label=="e") { String m=String.valueOf(2.71828); this.b=this.b+m; resultText.setText(this.b); } if (label=="π") { String m=String.valueOf(3.14159265); this.b=this.b+m; resultText.setText(this.b); } } else { this.b=this.b+label; resultText.setText(this.b); } } private String[] yunsuan(String str) { String s=""; char a[]=new char[100]; String jieguo[]=new String[100]; int top=-1,j=0; for (int i=0;i<str.length();i++) { if ("0123456789.".indexOf(str.charAt(i))>=0) { s=""; for (;i<str.length()&&"0123456789.".indexOf(str.charAt(i))>=0;i++) { s=s+str.charAt(i); } i--; jieguo[j]=s; j++; } else if ("(".indexOf(str.charAt(i))>=0) { top++; a[top]=str.charAt(i); } else if (")".indexOf(str.charAt(i))>=0) { for (;;) { if (a[top]!='(') { jieguo[j]=a[top]+""; j++; top--; } else { top--; break; } } } else if ("%÷".indexOf(str.charAt(i))>=0) { if (top==-1) { top++; a[top]=str.charAt(i); } else { if ("%÷".indexOf(a[top])>=0) { jieguo[j]=a[top]+""; j++; a[top]=str.charAt(i); } else if ("(".indexOf(a[top])>=0) { top++; a[top]=str.charAt(i); } else if ("+-".indexOf(a[top])>=0) { top++; a[top]=str.charAt(i); } } } else if ("+-".indexOf(str.charAt(i))>=0) { if (top==-1) { top++; a[top]=str.charAt(i); } else { if ("%÷".indexOf(a[top])>=0) { jieguo[j]=a[top]+""; j++; a[top]=str.charAt(i); } else if ("(".indexOf(a[top])>=0) { top++; a[top]=str.charAt(i); } else if ("+-".indexOf(a[top])>=0) { jieguo[j]=a[top]+""; j++; a[top]=str.charAt(i); } } } } for (;top!=-1;) { jieguo[j]=a[top]+""; j++; top--; } return jieguo; } public String yunsuan2(String str) { String result=""; double a=Double.parseDouble(str),b=0; b=Math.sqrt(a); result=String.valueOf(b); return result; } public String yunsuan3(String str) { String result=""; double a=Double.parseDouble(str),b=0; b=Math.pow(a, 2); result=String.valueOf(b); return result; } public String Result(String str[]) { String Result[]=new String[100]; int Top=-1; for (int i=0;str[i]!=null;i++) { if ("+-%÷".indexOf(str[i])<0) { Top++; Result[Top]=str[i]; } if ("+-%÷".indexOf(str[i])>=0) { double x,y,n; x=Double.parseDouble(Result[Top]); Top--; y=Double.parseDouble(Result[Top]); Top--; if ("-".indexOf(str[i])>=0) { n=y-x; Top++; Result[Top]=String.valueOf(n); } if ("+".indexOf(str[i])>=0) { n=y+x; Top++; Result[Top]=String.valueOf(n); } if ("".indexOf(str[i])>=0) { n=y*x; Top++; Result[Top]=String.valueOf(n); } if ("÷".indexOf(str[i])>=0) { if (x==0) { String s="ERROR"; return s; } else { n=y/x; Top++; Result[Top]=String.valueOf(n); } } if ("%".indexOf(str[i])>=0) { if (x==0) { String s="ERROR"; return s; } else

             {
                 n=y%x;
                 Top++;
                 Result[Top]=String.valueOf(n);
             }
         }
     }
 }
 return Result[Top];
}
public static void main(String arg[])
{
 Calculator a=new Calculator();
}

}

———————————————— 原文链接:https://blog.csdn.net/qq_41398808/article/details/79558789



这篇关于Java基础day03-方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程