### 方法的定义及返回值
~~~
public class FunctionDemo1 {
/**
* 方法
* void 没有返回值--无法向外提供数据
* 有返回值
* getSum(参数列表) 方法名
*/
// 没有返回值
// public static void getSum() {
// Scanner scan = new Scanner(System.in);
// System.out.println("x:");
// int x = scan.nextInt();
// System.out.println("y:");
// int y = scan.nextInt();
// System.out.println(x+y);
// }
// 返回值类型为int
// public static int getSum() {
// Scanner scan = new Scanner(System.in);
// System.out.println("x:");
// int x = scan.nextInt();
// System.out.println("y:");
// int y = scan.nextInt();
// return x+y;// return 返回一个数据,结束方法(return后面不能写任何代码)
// }
// 返回值类型为String
// public static String sayHello() {
// Scanner scan = new Scanner(System.in);
// System.out.println("x:");
// int x = scan.nextInt();
// System.out.println("y:");
// int y = scan.nextInt();
// if(x > y) {
// return x+">"+y;
// }
// return y+">"+x;
// }
// 返回值类型为数组
public static int[] getArray() {
int arr[] = {1,2,3};
return arr;
}
public static void main(String[] args) {
// 调用方法
// getSum();
// System.out.println(num);
// String msg = sayHello();
// System.out.println(msg);
// System.out.println(sayHello());
// int arr[] = getArray();
}
}
~~~
### 方法的形参与实参
~~~
public class FunctionDemo2 {
/**
* @param x 形式参数(形参)
* @param y 形式参数(形参)
* @return 求和
*/
public static int getSum(int x,int y) {
return x + y;
}
// public static int[] getNewArray(int arr[]) {
// for(int i = 0;i < arr.length - 1;i++) {
// for(int j = i + 1;j < arr.length;j++) {
// if(arr[i] < arr[j]) {
// int temp;
// temp = arr[i];
// arr[i] = arr[j];
// arr[j] = temp;
// }
// }
// }
//
// return arr;
// }
public static void getNewArray(int arr[]) {
for(int i = 0;i < arr.length - 1;i++) {
for(int j = i + 1;j < arr.length;j++) {
if(arr[i] < arr[j]) {
int temp;
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
public static void main(String[] args) {
// 调用有参方法
// int sum = getSum(11,20);
// System.out.println(sum);
int arr[] = {10,2,99,34,11,110};
getNewArray(arr);
for(int num : arr) {
System.out.println(num);
}
}
}
~~~
### 注意引用数据类型与基本数据类型的区别
~~~
public class FunctionDemo3 {
public static void getX(int x) {
x = x * 3;
}
public static void getY(int y[]) {
y[0] = y[0] * 3;
}
public static void main(String[] args) {
int x = 10;
int y[] = {10};
System.out.println(x);// 10
getX(x);
System.out.println(x);// 10
System.out.println(y[0]);// 10
getY(y);
System.out.println(y[0]);// 30
}
}
~~~
内存模型:
![](https://box.kancloud.cn/3921e41335566aea6316904ba0bc47ff_749x453.png)
### 构造器
~~~
public class ConstructorDemo1 {
/*
* 构造方法(构造器)
* 1.名字必须与类名一致
* 2.不能return数据
* 3.不能写void
*/
public ConstructorDemo1() {
}
public static void main(String[] args) {
}
}
~~~
### 方法重载
~~~
public class OverLoadDemo1 {
/**
* 方法的重载(overload,编译时多态,静态多态)
* 同一个类当中,同名不同参的方法,与返回值类型无关
*/
public OverLoadDemo1() {
}
public OverLoadDemo1(int i) {
}
public static void getSum(int x,int y) {
System.out.println(x+y);
}
public static void getSum(int x,int y,int z) {
System.out.println(x+y);
}
public static void getSum(int x,double y) {
System.out.println(x+y);
}
public static void getSum(double x,int y) {
System.out.println(x+y);
}
public static double getSum(double x,double y) {
return x+y;
}
public static void main(String[] args) {
getSum(1,5);
}
}
~~~