System.out.println() 类 + 对象 + 方法
方法调用
-
调用方法:对象名.方法名 (实参列表)
-
java支持两种用方法的方式,根据方法是否返回值来选择
-
当方法返回一个值的时候,方法调用通常被当做一个值。
int larger = max(30, 40)
-
如果方法返回值是void,方法调用一定是一条语句。
System.out.println("Hello,enxian!");
方法的重载
-
重载就是在一个类中,有相同的函数名称,但形参不同的函数。
-
方法的重载规则:
-
方法名称必须相同。
-
参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)。
-
方法的返回类型可以相同也可以不同。
-
仅仅返回类型不同不足以成为方法的重载。
-
实现理论:
方法名称相同时,编译器会根据调用方法的参数个数,参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。
可变参数
-
在方法声明中,在指定参数类型后加一个省略号(...).
-
一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。
public class Demo04 { public static void main(String[] args) { Demo04 it = new Demo04(); it.test(1, 4, 20, 30); } 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]); } }
递归
-
简单理解就是自己调用自己
-
利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需要少量的程序就可以描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。
-
递归结构包括两个部分:
-
递归头:什么时候不调用自身方法,如果没有头,将陷入死循环
-
递归体:什么时候需要调用自身方法。
-
public class Demo05 { public static void main(String[] args) { Demo05 it = new Demo05(); double sum = it.f(100); System.out.println(sum); } public double f(double n) { if(n==1) { return 1; } else { return f(n-1)*n; } } }
简易计算器
import java.util.Scanner; public class Demo06 { public static void main(String[] args) { //简易计算器 Demo06 test = new Demo06(); Scanner input1 = new Scanner(System.in); int a = input1.nextInt(); String fuhao = input1.next(); int b = input1.nextInt(); switch(fuhao) { case "+":System.out.println(test.sum1(a,b));break; case "-":System.out.println(test.sum2(a,b));break; case "*":System.out.println(test.sum3(a,b));break; case "/":System.out.println(test.sum4(a,b));break; default:System.out.println("不符合加减乘除符号!!!"); } } //加法运算 public int sum1(int a, int b) { return a+b; } //减法运算 public int sum2(int a, int b) { return a-b; } //乘法运算 public int sum3(int a, int b) { return a*b; } //除法运算 public int sum4(int a,int b) { int sum=0; if(b==0) { System.out.println("分母不能为零!!!"); } else { sum = a/b; } return sum; } } //输入时:数字空格符号空格数字回车 1 + 2