1.1 IDEA
1.1.1 集成开发环境IDE的概述
简述: IDEA是专门针对java的集成开发工具(IDE),由java语言编写.所以需要有JRE运行环境并配置好环境变量.他可以极大的提升我们的开发效率.可以自动编译,检查错误.在公司中,使用的就是IDEA进行开发.
IDE: Integrated Development Environment 集成开发环境
回顾之前开发java开发步骤:
- 编写代码
- 启动cmd
- 调用javac编译
- 调用java运行
为什么选择Intellij
免费的IDE当中使用最多的是:Eclipse
收费的IDE当中使用最多的是:Intellij IDEA
免费+收费所有的IDE当中,全世界用的最多的就是Intellij IDEA
1.1.2 Intellij-IDEA的安装
下载地址: www.Jetbrains.com
下载版本: Community Edition版本(社区版本,免费但是功能不全)
Ultimate版本(旗舰版,收费的,功能齐全,但是里面有评估版本,可以免费适用)
安装注意: 别乱动,无脑下一步
1.1.3 IDEA的项目结构
创建一个空项目(empty project)
创建一个新模块(new modules)
注意:
- 所有的文件都是写在src文件夹内部
- .iml文件与开发并不相关,是.idea文件的一些配置信息
- External Libraries外部的库,就是jdk
- .idea是配置相关信息
包的命名规则:
- 只能包含英文小写/数字/英文的.
- 网址要颠倒,比如baidu.com,那么包的命名就要com.baidu
- 比如命名cn.itcast.day04.demo01.cn是个大包,里面就包含了itcast,itcast包含了day04,day04包含了demo01
1.1.4 IDEA的HelloWorld
//输入:psvm+回车
public static void main(String[] args) {
}
//输入:sout+回车
System.out.println();
生成的文件都在项目下的out文件夹
1.1.5 IDEA的基本配置
- 调整字体大小(点开目录中Files选项->Settings->editor->font)(推荐使用Droid Sans Mono字体,大小为17号)
- 自动补全快捷键(Settings->keymap所有快捷键所在位置->点击小齿轮选择duplicate)代表复制了一份快捷键设置,在此基础上你添加的设置->找到Main menu,代码自动补全是在这里->code->completion->basic->先remove再add
1.1.6 IDEA的常用快捷键
快捷键 | 功能 |
---|---|
ctrl + shift + f10 | 运行代码 |
alt+ enter | 导入包 |
ctrl+Y | 删除光标所在行 |
ctrl+d | 复制光标所在行的内容,插入光标位置下面 |
ctrl+alt+L | 格式化代码 |
ctrl+/ | 单行注释,再按取消注释 |
ctrl+shift+/ | 选中代码注释,多行注释,再按取消注释 |
alt+Ins | 自动生成代码,toString,get,set等方法 |
alt+shift+上下箭头 | 移动当前代码行 |
1.1.7 IDEA的项目关闭打开与模块导入
打开项目
- 点击open
- 在磁盘里找到项目名称(有小黑方块的)
- 点击OK
导入模块
- 点击File
- project structure
- 点击modules
- 点击import module
- 在磁盘中选中要导入的包
- 接下来一直确定就可
1.2 方法
1.2.1 复习简单方法的使用
print代表横向打印
println代表竖向打印(其中System.out.println();
表示换行)
打印矩形
public static void main(String[] args) {
// 打印矩形4*5的矩形
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 4; j++) {
System.out.print("*");
}
System.out.println();
}
}
方法名称首字母小写,后面字母大写
格式:
public static void 方法名称(){
方法体
}
调用格式
方法名称();
实例
public class Demo01Method {
public static void main(String[] args) {
printMethod();
}
//打印矩形4*5的矩形
public static void printMethod() {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 4; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
1.2.2 方法的定义格式
含义: 方法其实就是若干语句的功能集合.
参数:
返回值:
形象的例子:
方法好比是一个工厂
蒙牛工厂
原料:奶牛,饲料,水
产出物:奶制品
钢铁工厂
原料:铁矿石,煤炭
产出物:钢铁建材
参数就是原料:就是进入方法的数据.
返回值就是产出物:就是从方法中出来的数据
定义方法的完整格式:
修饰符 返回值类型 方法名称(参数类型 参数名称, ...){
方法体
return 返回值;
}
修饰符: 现阶段的固定写法,public static
返回值类型: 也就是方法最终产生的数据结果是什么类型
方法名称: 方法的名字,规则和变量一样,小驼峰
参数名称: 进入方法的数据对应的变量名称
p.s.参数如果有多个,使用逗号进行分割
return作用: 两个作用,第一个是停止当前方法.第二个是将后面的结果数据返回值还给调用处
返回值: 方法执行后最终产生的数据结果
return后面的返回值,必须和方法名称前面的返回值类型,保持对应.
定义一个方法的三要素:
- 返回值类型
- 方法名称
- 参数列表
public class Demo02MethodDefine {
public static void main(String[] args) {
sum(1, 14);//15
}
public static int sum(int a, int b) {
int result = a + b;
System.out.println(result);
return 0 ;
}
}
也可以写成
public class Demo02MethodDefine {
public static void main(String[] args) {
System.out.println(sum(1, 14));//15
}
public static int sum(int a, int b) {
int result = a + b;
return result ;
}
}
1.2.3 方法的三种调用格式
单独调用: 方法名称(参数);
打印调用: System.out.println(方法名称(参数));
赋值调用: 数据类型 变量名称 = 方法名称(参数);
实例如下
public class Demo02MethodDefine {
public static void main(String[] args) {
sum(10,20);//单独调用
System.out.println(sum(1, 14));//打印调用
int jiafahe = sum(90,100);//赋值调用
}
public static int sum(int a, int b) {
int result = a + b;
return result ;
}
}
1.2.4 方法调用的详细过程
public class Demo02MethodDefine {
public static void main(String[] args) {
int jiafahe = sum(90,100);//赋值调用
}
public static int sum(int a, int b) {
int result = a + b;
return result ;
}
}
内部调用步骤:
- main方法里,执行语句
int jiafahe = sum(90,100);
此时涉及到调用sum()方法的调用 - 找到sum()方法
- 将90,100这两个数字传递进去赋值给对应的参数
- 执行sum()方法内的方法体
- return把返回值传递给调用处
1.2.5 对比有参数和无参数
有参数: 小括号当中有内容,当一个方法需要一些数据条件才能完成任务的时候,需要有参数.例如两个数字相加,就需要知道两个数字是各自多少,才能相加.
无参数: 小括号当中留空,一个方法不需要任何数据条件,自己就能独立完成任务.例如定义一个方法,打印固定10次HelloWorld
实例
public class Demo03MethodParameter {
public static void main(String[] args) {
System.out.println(method1(10,3));
method2();
}
//有参数
public static int method1(int a,int b){
int result = a * b;
return result;
}
//无参数
public static void method2(){
for (int i = 0; i < 3; i++) {
System.out.println("Hello World!");
}
}
}
运行结果
30
Hello World!
Hello World!
Hello World!
1.2.6 对比有返回值和无返回值
有返回值题目: 定义一个方法,用来求出两个数字之和…你帮我算,算完把结果告诉我
public class Demo04MethodReturn {
public static void main(String[] args) {
//我是main方法,我来调用你
//我调用你,你来帮我计算一下,计算完了之后,再告诉给我的num变量
int num = sum(10,20);
System.out.println("返回值为" + num);
}
//我是一个方法,我负责两个数字相加
//我有返回值int,谁调用我,我就把计算结果告诉谁
public static int sum(int a ,int b){
int result = a + b;
return result;
}
}
运行结果
返回值为30
没有返回值题目: 定义一个方法,用来打印两个数字之和.你来计算,算完之后你自己显示结果,不用告诉我结果
public class Demo04MethodReturn {
public static void main(String[] args) {
//因为没有返回值,接收不了,所以直接调用
sum(100, 200);
}
//没有返回值,可以用void
public static void sum(int a, int b) {
int result = a + b;
System.out.println("返回值为" + result);
}
}
没有返回值的方法,无法进行打印调用或赋值调用,只能进行单独调用
1.2.7 方法练习1_比较两个数字是否相同
代码如下:
public class Demo01MethodSame {
public static void main(String[] args) {
same(11, 20);
}
public static void same(int a, int b) {
if (a == b) {
System.out.println("这两个数相同");
} else {
System.out.println("这两个数不同");
}
}
}
运行结果
这两个数不同
有更简单的写法
public class Demo01MethodSame {
public static void main(String[] args) {
System.out.println(same(10, 10));
}
public static boolean same(int a, int b) {
return a == b;//a == b返回的就是布尔值,所以返回的就是一个布尔值
}
}
运行结果
true
只需要保证return后面的东西是一个boolean值就可以
1.2.8 方法练习2_求1到100的累加和
分析
- 三要素第一条返回值,有返回值,计算结果是一个int类型
- 三要素第二条方法名称,getSum
- 三要素第三条参数列表,数据范围已经确定,不需要任何参数
代码如下:
public class Demo02MethodSum {
public static void main(String[] args) {
System.out.println("1~100的和为:" + getSum());
}
public static int getSum() {
int sum = 0;
for (int i = 0; i <= 100; i++) {
sum += i;
}
return sum;
}
}
结果如下:
1~100的和为:5050
1.2.9 方法练习3_打印指定次数的HelloWorld
分析
- 三要素第一条返回值,只是进行一大堆打印操作,没有计算,也没有结果给调用处,不需要返回值
- 三要素第二条方法名称,printCount
- 三要素第三条参数列表,到底需要多少次?需要告诉我多少次
代码
public class Demo02MethodSum {
public static void main(String[] args) {
printCount(5);
}
public static int printCount(int num) {
for (int i = 0; i < num; i++) {
System.out.println("HelloWorld!" + i);
}
}
}
结果
HelloWorld!0
HelloWorld!1
HelloWorld!2
HelloWorld!3
HelloWorld!4
1.2.10 方法的注意事项
- 如果方法有返回值,那么必须写
return 返回值;
不能没有 - return后面的返回值数据,必须和方法的返回值类型对应起来
- 对于一个void没有返回值的方法,不能写return后面的返回值,只能写return自己
- 对于方法当中最后一行的return,可以省略不写
- 一个方法当中可以有多个return语句,但是必须保证同时只有一个会被执行到
第五个代码实例
public class Demo03MetrhodGetMax {
public static void main(String[] args) {
System.out.println("最大值为:" + getMax(10, 30));
}
public static int getMax(int a, int b) {
if (a > b) {
return a;
} else {
return b;
}
}
}
结果
最大值为:30
1.2.11 方法重载的基本使用
对于功能类似的方法来说,因为参数列表不一样,却需要记住那么多不同的方法名称,太麻烦.所以需要使用方法重载.
方法的重载(Overload): 多个方法的名称一样,但是参数列表不同
实例
public class Demo01MethodOverload {
public static void main(String[] args) {
System.out.println(sum(10, 20, 30, 21));
}
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;
}
}
结果
81
优点: 只需要记住一个方法名称,就可以记住类似的多个功能.
1.2.12 重载练习1_四种不同参数类型的方法
比较两个数据是否相等
参数类型分别为两个byte类型,两个short类型,两个int类型,两个long类型
代码
public class Demo02MethodOverloadPractice1 {
public static void main(String[] args) {
System.out.println(isSame(311112110.00, 90.00));
}
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;
}
public static boolean isSame(double a, double b){
return a == b;
}
}
结果
false
1.2.13 重载练习2_实现重载的println方法
光标指向println,按住ctrl然后点击鼠标,就可以查看println的源代码.里面应用了大量的方法重载.