定义类方法才能直接调用
类方法(+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