本帖最后由 xiekai_sjz 于 2018-9-13 15:35 编辑
day04 IDEA, 方法
今天我们来学习IDEA的安装和应用,以及方法的定义,调用和重载。
以下是今天的学习目标:
- 掌握idea开发工具的安装
- 能够使用idea创建Java工程
- 能够使用idea创建包和类
- 了解idea的Java工程目录
- 了解idea字体的设置
- 掌握idea常用开发快捷键
- 了解项目的导入和删除
- 掌握方法定义的参数和返回值含义
- 了解方法的调用过程
- 了解方法的三种调用形式
- 掌握方法定义的注意事项
- 掌握方法重载的概念
- 能够判断出方法的重载
以下是今天的详细笔记:
IDEA
IDEA集成开发环境IDE的概述
IDE: Integrated Development Environment,集成开发环境. 是一款软件, 集成了代码编写, 代码分析, 代码编译, 代码执行, 调试等很多功能. 我们只需要使用一款IDE软件就能够完成多种操作
常见Java开发IDE:
Eclipse (免费)
IntelliJ IDEA (社区版免费, 高级版收费)
IntelliJ-IDEA的安装
关键步骤:
双击exe安装
选择安装路径
创建快捷方式:
根据自己的操作系统是32位还是64位的, 勾选32-bit launcher或64-bit launcher, 不要勾选其他选项
各种下一步
IDEA的项目结构
IDEA项目结构:
basic-code 项目
|_ day04 模块
| |_ src 源代码目录
| |_ com.itheima.practice_01 包
| | |_ Xxx.java java类文件
| | |_ Yyy.java
| |_ com.itheima.practice_02
| |_ Xxx.java
| |_ Yyy.java
|_ day05
|_ src
|_ com.itheima.practice_01
| |_ Xxx.java
| |_ Yyy.java
|_ com.itheima.practice_02
|_ Xxx.java
|_ Yyy.java
IDEA的启动: Accept
1.首次启动时会询问是否导入以前的配置, 我们选择不导入Do not import settings
2.点击Create New Project创建新的项目
3.首次使用时, 创建一个空的项目, 选Empty Project, 点击Next
4.填写项目名称, 并选择项目路径. 点击Finish
5.项目创建后, 会弹出创建模块弹窗, 点击加号, 选择New Module创建模块
6.左侧列表选择Java. 右侧Module SDK选择JDK. 第一次使用需要点击New选择JDK安装路径.
7.选择好后效果如下, 点击Next:
8.在Module Name中输入模块名, 点击Finish
9.在返回设置窗口后点击OK即可
IDEA的HelloWorld开发步骤:
1. 在模块的src目录中新建包Package, 输入包名
2. 在包中建类Class, 输入类名
3. 在类中编写代码
4. 编写完毕后, 代码区域右键, 选择Run '类名.main()'运行程序
补充: 常见问题
原因: 我们没有指定项目的编译输出目录, 点击弹窗的OK可以弹出Project structure设置窗口, 指定输出目录
IDEA的基本配置打开IDEA设置窗口:
File -> Settings
设置字体:
File -> Settings -> Editor -> Font -> Font
设置字体大小:
File -> Settings -> Editor -> Font -> Size
开启代码提示:
File -> Settings -> Keymap -> 点击右侧小齿轮 -> Duplicate -> 改名并按回车
-> 下面列表点击Main menu -> Code -> Completion -> Basic -> 双击 -> Remove Ctrl+空格
-> 双击 -> Add keyboard shortcut -> 弹窗中直接按Alt / -> OK
-> 弹窗提示是否删除其他重复快捷键, 点击Remove
IDEA的常用快捷键
快捷键 | 功能 | Alt+Enter
| 导入包,自动修正代码 | Ctrl+Y
| 删除光标所在行 | Ctrl+D
| 复制光标所在行的内容,插入光标位置下面 | Ctrl+Alt+L
| 格式化代码 | Ctrl+/
| 单行注释 | Ctrl+Shift+/
| 选中代码注释,多行注释,再按取消注释 | Alt+Insert
| 自动生成代码,toString,get,set等方法 | Alt+Shift+上下箭头
| 移动当前代码行 | Shift + Enter
| 从当前行任意位置直接换行到下一行 | Ctrl + J
| Live Template提示, 可以快速生成代码 |
方法方法的使用
复习简单方法的使用
方法定义格式:
public static void 方法名称() {
方法体
}
方法调用格式:
方法名称();
方法注意事项:
1. 方法定义的先后顺序无所谓。
2. 方法定义必须是挨着的,不能在一个方法的内部定义另外一个方法。
3. 方法定义之后,自己不会执行的;如果希望执行,一定要进行方法的调用。
// 生成指定次数的for循环, 从0开始, 小于整数, 每次递增
5.fori
for (int i = 0; i < 5; i++) {
}
// 生成指定次数的for循环, 从整数开始, 大于0, 每次递减
5.forr
for (int i = 5; i > 0; i--) {
}
方法的定义格式
定义方法的完整格式:
数据类型 变量名 int a, int b, double c
修饰符 返回值类型 方法名称(参数类型 参数名称, 参数类型 参数名称, ...) { // 参数列表
方法体
return 返回值;
}
// 说明
修饰符: 目前写 public static
返回值类型: 方法执行结果的数据类型
方法名称: 方法的名字, 便于调用方法
参数类型: 传递进方法的数据的类型
参数名称: 传递进方法的数据的变量名称
方法体: 方法功能的实现代码
return: 结束当前方法, 并将返回值还给方法调用处
返回值: 方法执行结果. 返回值的数据类型必须和返回值类型一致[Java] 纯文本查看 复制代码 // 求两个整数的和, 返回结果
public static int sum(int a, int b) {
int result = a + b;
return result;
}
public static double sum(double a, double b) {
double result = a + b;
return result;
}
方法的三种调用格式
方法的3种调用方式:
1. 单独调用:
方法名称(参数);
sum(1, 2);
2. 打印调用:
System.out.println(方法名称(参数));
System.out.println(sum(1, 2));
3. 赋值调用:
数据类型 变量名称 = 方法名称(参数);
int sum = sum(1, 2);
void方法只能单独调用,不能进行打印调用或者赋值调用。
方法的调用流程图解
总结: 方法调用流程: 对比有参数和无参数
定义参数原则:
如果方法执行依赖于外部数据, 就要定义参数
如果方法自身能完成功能, 则不需要参数
对比有返回值和无返回值
定义返回值原则:
如果方法执行结果, 需要被外界使用, 则需要返回值
如果方法执行结果, 不需要告诉外界, 则不需要返回值
注意事项:
有返回值的方法,可单独调用, 打印调用, 赋值调用
无返回值的方法, 只能单独调用
方法练习1: 定义方法比较两个数字是否相同
需求: 定义一个方法,用来判断两个数字是否相同, 在main()方法中测试
代码:
[Java] 纯文本查看 复制代码 /*
需求: 定义一个方法,用来判断两个数字是否相同, 在main()方法中测试
*/
public class Test {
// psvm
public static void main(String[] args) {
// 打印调用
System.out.println(isSame(10, 20)); // false
System.out.println(isSame(20, 20)); // true
}
/*
判断两个数字是否相同
返回值类型: boolean
方法名: isSame
参数列表: int a, int b
*/
public static boolean isSame(int a, int b) {
// 复杂方式
/*boolean same;
if (a == b) {
same = true;
} else {
same = false;
}
return same;*/
// 三元运算符方式
/*boolean same = a == b? true : false;
boolean same = a == b;
return same;*/
// 直接返回方式
// return a == b;
//if中直接返回结果方式
if (a == b) {
return true;
} else {
return false;
}
}
}
方法练习2: 定义方法求出1到100的累加和
需求: 定义一个方法,方法内部求出1-100之间所有数字的总和并返回. 在main()方法中调用并打印结果
代码:
[Java] 纯文本查看 复制代码 /*
需求: 定义一个方法,方法内部求出1-100之间所有数字的总和并返回. 在main()方法中调用并打印结果
*/
public class Test {
public static void main(String[] args) {
System.out.println("结果是:" + getSum());
}
/*
求出1-100之间所有数字的总和并返回
返回值类型: int
方法名称: getSum
参数列表: 无
*/
public static int getSum() {
// 定义求和变量
int sum = 0;
// for循环产生1-100的数字
for (int i = 1; i <= 100; i++) {
// 累加到sum
sum += i;
}
// 返回结果
return sum;
}
}
方法练习3: 打印指定次数的HelloWorld
需求: 定义一个方法,方法内部打印指定次数的HelloWorld. 次数通过方法的参数传递. 在main()方法中调用并打印结果
代码:
[Java] 纯文本查看 复制代码 /*
需求: 定义一个方法,方法内部打印指定次数的HelloWorld. 次数通过方法的参数传递. 在main()方法中调用并打印结果
*/
public class Test {
public static void main(String[] args) {
printHelloWorld(10);
}
/*
打印指定次数的HelloWorld
*/
public static void printHelloWorld(int num) {
for (int i = 0; i < num; i++) {
System.out.println("Hello world!!" + i);
}
}
}
方法定义的注意事项
注意事项:
1. 方法应该定义在类当中,但是不能在方法当中再定义方法。不能嵌套
2. 方法定义的前后顺序无所谓
3. 方法定义之后不会执行,如果希望执行,一定要调用:单独调用、打印调用、赋值调用
4. 如果方法有返回值,那么必须写上"return 返回值;",不能没有
5. return后面的返回值数据,必须和方法的返回值类型,对应起来
6. 对于一个void没有返回值的方法,不能写return后面的返回值,只能写return自己
7. 对于void方法当中最后一行的return可以省略不写
8. 一个方法当中可以有多个return语句,但是必须保证同时只有一个会被执行到,两个return不能连写
方法的重载方法重载的基本使用
方法重载:
Overload
多个方法, 名称相同, 参数列表不同
重载的好处: 定义多个方法实现类似的多个功能, 只需要记住一个方法名称
方法重载的注意事项
重载注意事项:
方法重载的参数列表不同包括:
1. 参数个数不同
2. 参数类型不同
3. 参数的多类型顺序不同
重载与以下无关
1. 与参数的名称无关
2. 与方法的返回值类型无关
多个方法, 名称相同, 参数列表不同(参数个数不同 || 参数类型不同 || 参数的类型顺序不同), 和参数名无关, 和返回值类型无关
[Java] 纯文本查看 复制代码 // 查看以下方法是否为重载关系
public class Test {
public static int sum(int a, int b) {
return a + b;
}
public static double sum(double a, double b) {
return a + b;
}
public static int sum(int a, int b, int c) {
return a + b + c;
}
}
重载练习1: 四种不同参数类型的方法
注意重载的方法如何通过参数确定调用哪个方法
需求: 定义方法比较两个数据是否相等
参数类型分别为:
两个byte类型
两个short类型
两个int类型
两个long类型
并在main()方法中测试
代码:
[Java] 纯文本查看 复制代码 /*
需求: 定义方法比较两个数据是否相等
参数类型分别为:
两个byte类型
两个short类型
两个int类型
两个long类型
并在main()方法中测试
*/
public class Test {
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));
}
// 比较两个byte类型是否相等
public static boolean isSame(byte a, byte b) {
System.out.println("byte参数的方法执行");
return a == b;
}
// 比较两个short类型是否相等
public static boolean isSame(short a, short b) {
System.out.println("short参数的方法执行");
return a == b;
}
// 比较两个int类型是否相等
public static boolean isSame(int a, int b) {
System.out.println("int参数的方法执行");
return a == b;
}
// 比较两个long类型是否相等
public static boolean isSame(long a, long b) {
System.out.println("long参数的方法执行");
return a == b;
}
}
重载练习2: 判断方法的正确重载
[Java] 纯文本查看 复制代码 public class Demo03OverloadJudge {
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){} // 代码错误:和第6行冲突
public void open(int i,double d){} // 代码错误:和第5行冲突
public static void OPEN(){} // 代码正确不会报错,但不是重载
public static void open(int i,int j){} // 代码错误:和第3行冲突
}
|
|