一、什么是方法
•主方法是特殊的方法,它是程序执行得入口。main方法是主方法
•Scanner sc = new Scanner(System.in);
•Scanner 是jdk中得类,sc是对象
•sc.nextInt(); sc.next(); 点后面的部分叫做方法
•在方法部分中,只使用对象名调用方法
二、方法简析
1、public 是访问修饰符
2、static 表示这个方法是静态的方法
3、void 是返回值类型,这边表示不返回任何类型
4、main是方法名字
三、方法的声明
1、语法格式:
访问修饰符 返回类型 方法名(参数列表){
方法体;
}
2、举例
public static void main(String[] args){
System.out.println(“Hello world!”);
}
3、方法名:
•满足标识符命名规则
•一个单词的话全小写,多个单词的话,第一个单词全小写,从第二个单词开始依次首字母大写。–驼峰命名法
myMethod
4、访问修饰符:
方法允许被访问的权限的范围
还有protected private 等提前了解
void返回类型—表示没有返回值
返回值可以是void也可以是任何数据类型
5、方法分类:
(1)根据方法是否带参数,是否返回值,可以分为4类:
•无参数无返回值方法
•无参数带返回值方法
•带参无返回值方法
•带参带返回值方法
(2)具体未:
1)无参数无返回值方法
例子:
一行打印输出一串*
欢迎来到Java世界!
2)无参有返回值方法
无参由返回值方法典型的类型就Scanner类
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();返回的是整型
sc.next()返回的是String类型。
例题;求长方形的面积
public int area(){}
3)有参无返回值方法
例题:定义一个求两个float类型数据最大值的方法,在方法中将最大值打印输出
public void max(float a,float b){}
4)带参有返回值方法
定义一个求n!的方法,
然后再求1!+2!+3!+4!+5!
阶乘:5!=12345;
public int fac(int n){}
方法名后面的括号不能省略,但是参数列表可以省略
数组作为方法参数
例题:定义一个方法,打印输出数组元素的值
public void printArray(int[] arr){}
例题:查找数组元素的值
方法参数:数组、要查找的元素
返回值:boolean类型
public boolean search(int n,int[] arr){}
方法的重载
方法名相同,参数列表不同。
方法的重载
判断下列哪些方法是重载方法
原始方法:public void hello(){}
•public int hello(){} x 参数列表相同,方法名相同的
•public void hello(String str){} 对的
•public void hello(int n){} 对的
•public void hello(float a,float b){} 对的
•public void hello1(){} x 方法名一样
重载:方法签名相同,参数列表不同(与返回值无关)
重写:同名同参同返回
重载:必须是方法名相同参数列表不同;
•参数列表可以是参数个数不同
•也可以是数据类型不同
•和返回值无关
总结:
•对于基本数据类型,它相当于是复制了一个值到另外一个变量,对主方法的变量没有影响
•而数组是引用数据类型,它相当于上述代码中a和 a1同时指向了数组{1,2,3,4,5}此时调用方法修改第4个元素的值就相当于把内存中最原始的值改变了,所以输出的是最原始的被改变的值。
•方法的声明语法格式
访问修饰符 返回类型 方法名(参数列表){
方法体;
}
•方法的调用
Demo d = new Demo();
d.show();
•方法的重载
•方法名相同
•参水列表不同
•可变参数列表
•可变参数一定时方法中的最后一个参数。
•数组可以传递给可变参数的方法,反之不行。
•在重载中,含有可变参数的方法是最后被选中。
•方法的传值问题
•基本数据类型方法中对参数的修改,不会对主方法中传来的变量值产生影响
•引用数据类型 方法中对数组的改变,会影响主方法中传来的数组