建立 project->module->package->class
IDEA常用快捷键
main/psvm sout 或者要输出的语句.sout 也可以直接输出
ctrl +alt +L 格式化代码
ALT +SHIFT +上下箭头 上下移动当前代码
ctrl+/ 对代码进行注释
接口
Scanner:
package com.itheima.scanner;
//1、完成导包操作,不需要自己写,以后通过工具导入更方便
import java.util.Scanner;
public class scanner {
public static void main(String[] args) {
//学会使用键盘录入技术
//得到一个键盘扫描对象
Scanner sc = new Scanner(System.in);
//3、调用sc对象的功能,等待接收用户输入的数据
//等待用户输入数据,直到用户输入完数据并按了回车键会拿到数据
System.out.println("请输入年龄");
int age = sc.nextInt();
System.out.println("您的年龄是:"+age);
System.out.println("请输入姓名");
String name = sc.next();
System.out.println("欢迎:"+name);
}
}
方法
提高代码复用性、让程序逻辑更清晰
//方法
public class methoddemo1 {
public static void main(String[] args) {
int c1 = sum(10,30);
System.out.println(c1);
}
public static int sum(int a,int b){
int c = a+b;
return c;
}
}
定义方法->调用方法->方法内存图(方法执行起来是怎么运行的)->方法的参数传递机制->方法其他常见的形式、技术(方法重载,方法递归)
方法定义的完整格式
修饰符 返回值类型(int void等) 方法名(形参列表){
方法体代码
return 返回值`
}
形参列表用于接数据,可以有多个,可以没有,如果有多个,用,隔开,且不能给初始化值
如果返回值类型是void,不需要return返回数据。
方法调用格式
方法名(实参)
方法调用流程:
用debug查看
设置断点
用debug运行
step into 应该相当于单步进入。
方法使用的常见问题
return下面不能编写代码,因为永远执行不到
有返回值的方法调用时可以选择定义变量接收到结果,或者直接输出调用,甚至直接调用(不要结果,只跑一下),无返回值方法的调用只能直接调用一下
定义方法的技巧
方法名称 有意义,驼峰命令法
骆驼式命名法就是当变量名或函数名是由一个或多个单词连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始;从第二个单词开始以后的每个单词的首字母都采用大写字母,例如:myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。
需要分析方法是否需要申明返回值类型以及是否需要接收参数
注意
给数组赋值时,一定要注意数组溢出问题
int n= sc.nextInt();
int[] arr=new int[n];
System.out.println("please input your args");
for (int a=0;a<=n-1;a++){
arr[a]=sc.nextInt();
}
当建立一个大小为n的数组,当从下标为零开始循环,只能循环n-1次。
内存:
方法没有被调用时,存放在方法区的字节码文件中
方法被调用时,需要进入到栈内存中执行
方法的参数传递机制:
基本类型的参数传递:
在传输实参给方法的形参的时候,并不是传输实参变量本身,而是传输实参变量中存储的值,这就是值传递。
引用类型的参数传递机制:
传递变量里存储的地址。
数组作为实参,传递的就是地址,所以值会实实在在的发生变化
数组元素会放在堆内存中
System.out.println();//输出后换行
System.out.print();//输出后不换行
方法重载
同一个类中,出现了多个方法名称相同但是形参列表不同(形参的个数,顺序,类型不同,不关心名称),这些方法就是重载方法,不关心修饰符和返回值类型
根据传入的参数匹配相应的方法
专业化代码设计,功能类似,便于记忆
单独使用return关键字
可以立即跳出并结束当前方法的执行,return关键字单独使用可以放在任何方法中。当数据有问题时(比如说除法除数为0),可以直接return,退出方法执行。
break,结束当前所在循环
continue,结束当前所在循环的当次执行,进入下一次执行
代码训练中的小知识
nextInt(int n)表示从随机数序列生成器中获取0(包括)到n(不包括)的随机值
搞出一个大写字母
char ch1 = (char) (r.nextInt(26)+65); 强转 alt+回车 选第一个
搞出一个小写字母
char ch1 = (char) (r.nextInt(26)+97);