【方法】
IDEA常用快捷键
快捷键 | 功能 |
---|---|
Alt + Enter | 导入包,自动修正代码 |
Ctrl + Y | 删除光标所在行 |
Ctrl + D | 复制光标所在行的内容,插入光标位置下面 |
Ctrl + Alt + L | 格式化代码 |
Ctrl + / | 单行注释,再按取消注释 |
Ctrl + Shift + / | 选中代码注释,多行注释,再按取消注释 |
Alt + Ins | 自动生成代码,toString,get,set等方法 |
Alt + Shift +上下箭头 | 移动当前行 |
方法
方法的定义格式
定义方法的完整格式:
修饰符 返回值类型 方法名称(参数类型 参数名称,...){
方法体;
return 返回值;
}
修饰符:现阶段的固定写法,public static
返回值类型:也就是方法最终产生的的数据结果是什么类型
方法名称:方法的名字,规则和变量一样,小驼峰
参数类型:进入方法的数据是什么类型
参数名称:进去方法的数据对应的名称
ps:参数如果有多个,使用逗号进行分隔
方法体:方法需要做的事情,若干行代码
return:两个作用,第一是停止当前方法,第二是将后面的返回值换给调用处
返回值:也就是方法执行后最终产生的数据结果
**注意:**return后面的“返回值”,必须和方法名前面的“返回值类型”保持对应。
定义一个两个int数字相加的方法,三要素:
返回值类型:int
方法名称:sum
参数列表:int a, int b
public class MethodDefine{
public static void main(String[] args){
}
public static int sum(int a, int b){
int result = a + b;
return result;
}
}
方法的三种调用格式:
1.单独调用: 方法名称(参数);
2.打印调用: System.out.println(方法名称(参数));
3.赋值调用: 数据类型 变量名称 = 方法名称(参数);
public class MethodDefine{
public static void main(String[] args){
//单独调用
sum(10, 20);
System.out.println("-----------------");
//打印调用
System.out.println(sum(10, 20));
System.out.println("-----------------");
//赋值调用
int num = sum(10, 20);
num +=100;
System.out.println("变量的值:" + num);
}
public static int sum(int a,int b){
System.out.println("方法执行了!");
int result = a + b;
return result;
}
}
**注意:**此前学习的方法,返回值类型固定写为void,这种方法只能够单独调用,不能进行打印调用或者赋值调用。
方法有参数与无参数
有参数:小括号当中有内容,当一个方法需要一些数据类型,才能完成任务的时候,就是有参数:
例如两个数字相加,必须知道两个数字各自是多少,才能相加
无参数:小括号当中留空,一个方法不需要任何数据条件,自己就能独立完成任务,就是无参数:
例如定义一个方法,打印固定十次Helloworld
public class MethodParam{
public static void main(String[] args){
System.out.println(Method1(10,20));
Method2();
}
public static int Method1(int a,int b){
int result = a + b;
return result;
}
public static void Method2(){
for (int i = 0;i < 10;i++){
System.out.println("Hello,world");
}
}
}
方法练习
判断两个数是否相等
public class MethodSame {
public static void main(String[] args) {
System.out.println(isSame(10, 20));
}
public static boolean isSame(int a, int b) {
return a == b;
}
}
求出1-n之间所有数字的和值
public class MethodSum {
public static void main(String[] args) {
System.out.println("结果是"+getSum(100));
}
public static int getSum(int n){
int sum = 0;
for (int i = 1; i <= n; i++) {
sum +=i;
}
return sum;
}
}
打印指定次数的Helloworld
public class MethodHelloworld {
public static void main(String[] args) {
printCount(10);
}
public static void printCount(int n){
for (int i = 0; i < n; i++) {
System.out.println("Hello,world!");
}
}
}
方法的注意事项
1.方法应该定义在类当中,但是不能在方法当中再定义方法,即:方法不能嵌套;
2.方法定义的前后顺序无所谓;
3.方法定义后不会执行,如果希望之星,一定要调用:单独调用,打印调用,赋值调用;
4.如果方法有返回值,那么必须写上“return 返回值”,不能没有;
5.return后面的返回值数据,必须和方法的返回值类型,对应起来;
6.对于一个void没有返回值的方法,不能写return后面的返回值,只能写return自己(或者不写);
7.一个方法当中可以有多个return语句,但是必须保证同时只有一个会被执行到,两个return不能连写。
方法的重载
方法重载的使用说明
对于功能类似的方法来说,因为参数列表不一样,却需要记住那么多不同的方法名称,太麻烦。
因此,要用到,方法的重载(Overload):多个方法的名称一样,但是参数列表不一样。
public class MethodOverload {
public static void main(String[] args) {
System.out.println(sum(10,20));
System.out.println(sum(10,20,30));
System.out.println(sum(10,20,30,40));
}
public static int sum(int a,int b){
System.out.println("有2个参数的方法执行");
return a + b;
}
public static int sum(int a,int b,int c){
System.out.println("有3个参数的方法执行");
return a + b + c;
}public static int sum(int a,int b,int c,int d){
System.out.println("有4个参数的方法执行");
return a + b + c + d;
}
}
好处:只需要记住一个方法的名称,就能实现类似的功能。
方法重载的注意事项
方法重载与下列因素有关:
1.参数的个数不同;
2.参数的类型不同;
3.参数的多类型顺序不同。
public class MethodOverload {
public static void main(String[] args) {
System.out.println(sum(10,20));
}
public static int sum(int a,int b) {
return a + b;
}
public static int sum(int a,double b){
return (int)(a + b);//参数的数据类型不同
}public static int sum(double a,int b){
return (int)(a + b);//多类型参数顺序不同
}
public static int sum(int a,int b,int c){
return a + b + c ;//参数的个数不同
}
}
方法的重载与下列因素无关:
1.与参数的名称无关;
2.与方法的返回值类型无关。
public class MethodOverload {
public static void main(String[] args) {
System.out.println(sum(10,20));
}
public static int sum(int a,int b) {
return a + b;
}
/*public static double sum(int a,int b) {
return a + b;
错误写法,与方法的返回值类型无关。
}*/
/*public static int sum(int x,int y) {
return x + y;
错误写法,与参数的名称无关。
}*/
}
方法重载练习
判断两个数据是否相等(可识别多种数据类型)
public class MethodOverloadSame {
public static void main(String[] args) {
System.out.println(isSame((byte)10,(byte)20));
System.out.println(isSame((short)10,(short)20));
System.out.println(isSame(10,20));
System.out.println(isSame(10L,20L));
}
public static boolean isSame(byte a,byte b){
return a == b;
}
public static boolean isSame(short a,short b){
return a == b;
}public static boolean isSame(int a,int b){
return a == b;
}public static boolean isSame(long a,long b){
return a == b;
}
}
模拟输出println
的效果
public class MethodOverloadPrint {
public static void main(String[] args) {
println(10);
println("Helloworld");
println(3.14);
}
public static void println(int a){
System.out.println(a);
}public static void println(String a){
System.out.println(a);
}public static void println(double a){
System.out.println(a);
}
}