04-IntelliJ IDEA;方法

本文详细介绍IntelliJ IDEA的项目结构、常用设置与快捷键,深入解析方法定义、调用格式、重载及注意事项,适合初学者快速掌握IDEA环境配置与Java编程基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. IntelliJ IDEA 集成开发环境

IDEA — Integrated Development Environment,集成开发环境。

1.1. IDEA 项目结构

  1. 项目—模块–包—结构:

在这里插入图片描述

  • 新建一个项目(project):
    在这里插入图片描述

在这里插入图片描述

  1. 创建模块(module):

在这里插入图片描述

  • 这里我们创建了一个名为day06-code的模块(module)注意:。所有的代码都要写在src文件夹中,day06-code.iml存放一些配置信息,不用管;External Libraries就是JDK。
  1. 然后创建(package):

在这里插入图片描述

  • 取名的要求:一般只使用英文小写,还有数据和英文句点。一般使用公司的域名,然后倒过来,例如公司域名为:itcast.cn,倒过来就是cn.itcast。这里我们命名这个包为:cn.itcast.day06.demo01。注意在这里:英文句点是起分隔作用,在这里有四个层级文件夹的嵌套;因为包是一组文件的名称。

在这里插入图片描述

  • 创建成功之后,就是这样的:

在这里插入图片描述

  • 之后在创建一个cn.itcast.day06.demo02的包:

在这里插入图片描述

  • 然后最终项目结构如下图所示:

在这里插入图片描述

  1. 然后就可以在新建的包cn.itcast.day04.demo01中创建一个HelloWorld的。.class文件自动生成,保存在项目文件夹中的out文件夹。
  2. 如果想新建新的模块(module):File --> New --> Module

1.2. IDEA常用设置

  1. 字体、外观设置:File --> setting

  2. 自动补全:File --> setting --> keymap

1.3. IDEA常用快捷键

在这里插入图片描述

1.4. 导入一个新的module

File --> Project Structure --> Module --> 点击“+”

2. 方法

2.1. 简介

  1. 方法定义的注意事项:

    1. 方法定义的顺序无所谓。
    2. 方法定义必须是挨着的,不能再一个方法内部定义另外一个方法。
    3. 方法定义之后不会自动执行,要调用。
  2. 定义方法的完整格式:

    修饰符 返回值类型 方法名称 (参数类型 参数名称,...) {
        方法体;
        return 返回值;
    }
    
    1. 修饰符:现阶段固定写法:public static

    2. 返回值类型:

    3. 方法名字:方法的命名和变量一样,小驼峰。

    4. 参数类型:

    5. 参数名称:

    6. return:注意:return后面的返回值必须和方法名称前面的返回值类型,保持对应。

      return的两个作用:

      • 停止当前方法
      • 将后买你的结果数据返回给调用出

2.2. 三种方法调用格式

定义一个两个int数字相加的方法:

  1. 单独调用方法名称(参数);
  2. 打印调用System.out.println(方法名称(参数));
  3. 赋值调用数据类型 变量名称 = 方法名称(参数)
package cn.itcast.day04.demo02;

public class Demo02MethodDefine {
    public static void main(String[] args) {
        // 1.单独调用:
        sum(10, 20);
        // 2.打印调用:
        System.out.println(sum(10,20));
        // 3.赋值调用:
        int num = sum(15,25);
        System.out.println(num);
    }
    public static int sum(int a, int b) {
        int result = a + b;
        return result;
    }
}
  • 注意:此前学习的方法,返回值类型固定写为void,这种方法只能单独调用,不能进行打印调用或者赋值调用。

2.3. 对比有参数和无参数的情况

package cn.itcast.day04.demo02;

public class Demo03MethodParam {
    public static void main(String[] args) {
        method1(10,20);
        method2();
    }
    // 1.有参数:
    public static void method1(int a, int b) {
        int result = a * b;
        System.out.println(result);
    }
    // 2.无参数:
    public static void method2() {
        for(int i = 0; i <= 10; i++) {
            System.out.println("Hello World" + i);
        }
    }
}

2.4. 对比有无返回值

注意事项:

  1. 对于有返回值的方法,可以使用单独调用、打印调用或者赋值调用。
  2. 对于无返回值的方法,只能使用单独调用,不能使用打印调用或者赋值调用。

2.5. 练习

  1. 定义一个方法,判断两个数字是否相同:
package cn.itcast.day04.demo03;

public class Demo01MethodSame {
    public static void main(String[] args) {
        System.out.println(isSame(10, 20));
        ;
    }
    // 方法1:
//    public static boolean isSame(int a, int b) {
//        if (a == b) {
//            return true;
//        } else {
//            return false;
//        }
//    }

    // 方法2:
//    public static boolean isSame(int a, int b) {
//        return a == b;
//    }

    // 方法3:
//    public static boolean isSame(int a, int b) {
//        boolean same;
//        same = a == b;
//        return same;
//    }

    // 方法4:
    public static boolean isSame(int a, int b) {
        boolean same = a == b ? true : false;
        return same;
    }
}
  1. 求出1–100的所有的和:
package cn.itcast.day04.demo03;

public class Demo02MethodSum {
    public static void main(String[] args) {
        System.out.println("输出结果是:" + getSum());
    }
    public static int getSum() {
        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            sum += i;
        }
        return sum;
    }
}
  1. 定义一个方法,用来打印指定次数的HelloWorld。
package cn.itcast.day04.demo03;

public class Demo03MethodPrint {
    public static void main(String[] args) {
        printCount(9);
    }
    public static  void printCount(int num){
        for (int i = 0; i < num; i++) {
            System.out.println("Hello World" + (i + 1));
        }
    }
}

2.6. 方法的注意事项

  1. 不能嵌套:方法应该定义在类当中,但是不能再方法中再定义方法。

  2. 方法执行的定义前后顺序无所谓。

  3. 方法有三种调用模式:1. 单独调用;2. 打印调用;3. 复制调用

  4. 如果方法有返回值,那么必须写上:return 返回值;

  5. return后面的返回值数据,必须和方法返回类型对应起来。

  6. 对于一个void没有返回值的方法,不能写return后面的返回值,只能写return自己(一般不会写)。

  7. 对于方法当中最后一行的return可以省略不写。

  8. 一个方法中可以有多个return语句,但是要保证只有一个会被执行。

package cn.itcast.day04.demo03;

public class Demo04MethodNotice {
    public static void main(String[] args) {

    }
    public static int method1() {
        return 10;
    }

    public static void method2() {
        return; // 没有返回值,知识结束方法执行而已
    }
    
    public static void method3() {
        System.out.println("AAA");
        System.out.println("BBB");
        //return; // 最后一行return可以不写
    }
}

2.7. 方法的重载

  1. 对于功能类似的方法来说,因为参数列表不一样,却需要记住那么多不同的方法名称,太麻烦。所以有了方法的重载(overload):多个方法的名称名一样,但是参数列表不一样。

  2. 好处:只需要记住唯一一个方法的名称,就可以实现类似的功能。

  3. 对比,Python中没有方法的重载(overload)
    为什么Python不需要重载?转载与 知乎文章

https://www.zhihu.com/question/20053359
这个问题,最近在 cpyug 上面讨论得很火热。我简要概括一下。为了考虑为什么 python 不提供函数重载,首先我们要研究为什么需要提供函数重载。
函数重载主要是为了解决两个问题。
1。可变参数类型。
2。可变参数个数。
另外,一个基本的设计原则是,仅仅当两个函数除了参数类型和参数个数不同以外,其功能是完全相同的,此时才使用函数重载,如果两个函数的功能其实不同,那么不应当使用重载,而应当使用一个名字不同的函数。
好吧,那么对于情况 1 ,函数功能相同,但是参数类型不同,python 如何处理?答案是根本不需要处理,因为 python 可以接受任何类型的参数,如果函数的功能相同,那么不同的参数类型在 python 中很可能是相同的代码,没有必要做成两个不同函数。
那么对于情况 2 ,函数功能相同,但参数个数不同,python 如何处理?大家知道,答案就是缺省参数。对那些缺少的参数设定为缺省参数即可解决问题。因为你假设函数功能相同,那么那些缺少的参数终归是需要用的。好了,鉴于情况 1 跟 情况 2 都有了解决方案,python 自然就不需要函数重载了。=

  1. 方法重载与下列因素相关:

    1. 参数个数不同。
    2. 参数类型不同。
    3. 参数的多类型顺序不同。
  2. 方法重载与下列因素无关:

    1. 与参数的名称无关。
    2. 与方法的返回类型无关。
package cn.itcast.day04.demo04;

public class Demo01MethodOverload {
    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) {
        return a + b;
    }
    public static int sum(int a, int b, int c) {
        return a + b + c;
    }
    public static int sum(int a, int b, int c, int d) {
        return a + b + c + d;
    }
}

2.8. 方法的重载练习

  1. 比较两个数据是否相等。参数类型分别为两个byte类型,两个short类型,两个int类型,两个long类型。并在main方法中进行测试。
package cn.itcast.day04.demo04;

public class Demo02MethodOverloadSame {
    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(10, 11));

        System.out.println(isSame(10L, 11L));
    }
    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 = a == b ? true : 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参数方法执行。");
        return a == b;
    }
}
  1. 判断下列那些方法是重载关系。
public static void open(){} // 正确重载
public static void open(int a){} // 正确重载
static void open(int a,int b){} // 代码错误,和第8行冲突
public static void open(double a,int b){} // 正确重载
public static void open(int a,double b){} // 代码错误,和第5行冲突
public void open(int i,double d){} // 代码错误,和第5行冲突
public static void OPEN(){} // 代码正确不会报错,但不是有效重载
public static void open(int i,int j){} // 代码错误,和第3行冲突
  1. 模拟输出语句中的println方法效果,传递什么类型的数据就输出什么类型的数据,只允许定义一个方法名println
package cn.itcast.day04.demo04;

public class Demo04OverloadPrint {
    public static void main(String[] args) {
        println(100);
        println("AAAAA");
    }
    public static void println(byte a) {
        System.out.println(a);
    }
    public static void println(short a) {
        System.out.println(a);
    }
    public static void println(int a) {
        System.out.println(a);
    }
    public static void println(long a) {
        System.out.println(a);
    }
    public static void println(float a) {
        System.out.println(a);
    }
    public static void println(double a) {
        System.out.println(a);
    }
    public static void println(char a) {
        System.out.println(a);
    }
    public static void println(boolean a) {
        System.out.println(a);
    }
    public static void println(String a) {
        System.out.println(a);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值