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