/*
定义一个方法格式:
public class void 方法名称(){
方法体;
}
方法体命名规则和变量一样,使用小驼峰。
方法体:就是大括号当中可以包含任意条语句。
【注意事项】
1.方法定义的先后顺序无所谓。
2.方法的定义不能产生嵌套包含关系。
3.方法定义好了之后,不会执行,如果要想执行,一定要进行方法的调用。
如何调用方法,格式:
方法名称( );
*/
public static void main(String[] args) {
farmer();//调用农民的方法
seller();//调用商贩的方法
cook();//调用厨子的方法
me();//调用我自己的方法
}
//农民
public static void farmer() {
System.out.println("播种");
System.out.println("浇水");
System.out.println("施肥");
System.out.println("除虫");
System.out.println("收割");
System.out.println("卖给商贩");
}
//商贩
public static void seller(){
System.out.println("运输到市场");
System.out.println("抬高价格");
System.out.println("哟喝");
System.out.println("卖给厨子");
}
//厨子
public static void cook(){
System.out.println("洗菜");
System.out.println("切菜");
System.out.println("炒菜");
System.out.println("装盘");
}
//我
public static void me(){
System.out.println("吃");
}
}
方法的定义
/*
方法就是若干语句的功能集合
牛奶工厂 原料:奶牛、饲料、水
产出物: 奶制品
参数(原料):进入方法的数据。
返回值(产出物):从方法中出来的数据。
定义方法的完整格式:
修饰符 返回值类型 方法名称(参数类型 参数名称,....){
方法体
return 返回值;
}
修饰符:现阶段固定写法, public static
返回值类型:方法最终产生的数据结果是什么类型
方法名称:方法的名字,规则和变量一样,小驼峰
参数类型:进入方法的数据是什么类型
参数名称:进入方法的数据对应的变量名称
ps:参数如果有多个,使用逗号进行分隔
方法体:方法需要做的事情,若干行代码
return:两个作用,一停止当前方法,二将后面的返回值还给调用处
注意:return 后面的“返回值”必须和方法名称前面的“返回值类型”保持对应。
定义一个两个int数字相加的方法。三要素:
返回值类型:int
方法名称:sum
参数列表:int a,int b
方法的三种调用格式:
1.单独调用:方法名称(参数);
2.打印调用: System.out.println(方法名称(参数));
3.赋值调用:
*/
public static void main(String[] args) {
//单独调用
sum(10, 20);
System.out.println("==========");
//打印调用
System.out.println(sum(10, 20));
System.out.println("==========");
//赋值调用
int num = sum(15, 20);
System.out.println("变量值:" + num);
}
public static int sum(int a, int b) {
System.out.println("方法执行了");
int result = a + b;
return result;
}
有参数和无参数
/*
有参数:小括号当中有内容,当一个方法需要一些数据条件,才能完成任务的时候,就是有参数。
例如两个数字相加,必须知道两个数字的各自多少,才能相加。
无参数:小括号当中留空,一个方法不需要任何数据条件,自己能独立完成任务,就是无参数。
*/
public static void main(String[] args) {
sum(10, 35);
System.out.println("=========");
met();
}
//有参数 数字加法计算
public static void sum(int a, int b) {
int result = a + b;
System.out.println("结果是:" + result);
}
// 无参数 打印5次文本字符串
public static void met() {
for (int i = 0; i < 5; i++) {
System.out.println("Hello");
}
}
有返回值和无返回值
/*
定义一个变量,求出两数之和,打印两数之和
注意事项:
对于有返回值的方法,可以单独调用、打印调用或者赋值调用。
但对于无返回值的方法,只能使用单独调用,不能使用打印调用或者赋值调用。
*/
public static void main(String[] args) {
int num = sum(12, 15);
System.out.println("返回值:" + num);
System.out.println("=============");
printSum(12, 15);
}
//有返回值
public static int sum(int a, int b) {
int result = a + b;
return result;
}
//无返回值,
public static void printSum(int a, int b) {
int result = a + b;
System.out.println("打印结果:" + result);
}
方法重载
在一个类中,方法名相同,参数列表不同就是重载。
参数列表不同包括,个数不同,顺序不同,类型不同。
只需记住唯一一个方法的名称,就可以实现类似的多个功能。
方法重载与下列因素相关:
- 参数个数不同
- 参数类型不同
- 参数的多类型顺序不同
无关因素:
- 与参数名称无关
- 与方法返回值类型无关
方法的参数
参数为基本类型
如果方法参数是基本类型,形参的改变不会影响到实参
如果方法参数是基本类型,传递的是值
参数为引用类型
如果方法参数是引用类型,形参的改变会影响到实参。
如果方法参数是引用类型,传递的是地址值。
/*
四种不同参数类
比较两个参数,参数类型为2个byte类型,2个short类型,2个int类型,2个long类型
*/
public static void main(String[] args) {
byte a = 10;
byte b = 20;
System.out.println(isSame(a,b));
System.out.println(isSame((short)20,(short)20));
System.out.println(isSame(20,30));
System.out.println(isSame((long)20,(long)20));
}
public static boolean isSame(byte a,byte b) {
System.out.println("执行byte");
boolean same;
if (a == b) {
same = true;
} else same = false;
return same;
}
public static boolean isSame(short a, short b) {
System.out.println("执行short");
boolean same;
if (a == b ? true : false) same = true;
else same = false;
return same;
}
public static boolean isSame(int a, int b) {
System.out.println("执行int");
return a==b;
}
public static boolean isSame(long a, long b) {
System.out.println("执行long");
if (a == b) {
return true;
} else {
return false;
}
}