用户交互Scanner
Java.util.Scanner是Java5的新特征
基本语法:Scanner s = new Scanner(System.in)
获取:next() nextLine() nextInt()
判断:hasNext() hasNextLine() hasNextInt()
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println();
if(scanner.hasNext()){
String str = scanner.next();
System.out.println(str);
}
scanner.close();
}
}
注意:next()一定要读取到有效字符才会停止,不能得到带空格的字符串,读取到有效字符之后空白才成为结束符
nextLine()以enter作为结束符
流程控制
1、if-else if-else
2、switch
switch(expression){
case value :
......
break;
default :
......
}
注意:变量类型是byte short int char;JavaSE7开始有String;case标签必须是字符串常量或字面量
反编译:将.class翻译成.java,在文件夹里将.class复制到.java中
项目结构->project->找到地址(存放.class文件)
3、while
4、do while
do{
}while();
5、for
增强的for循环,Java5引入
int[] nums = {10,20,30};
for(int x:nums){
System.out.println(x);
}
6、break continue goto
break退出整个循环,continue退出单次循环过程
goto用法:label: 语句; goto:label;
练习:打印三角形
for(int i=1; i<=5; i++){
for(int j=5; j>=i; j--){
System.out.print(" ");
}
for(int j=1; j<=i; ++j){
System.out.print("*");
}
for(int j=1; j
System.out.print("*");
}
System.out.println();
}
方法
方法包括一个方法头和一个方法体
{修饰符 返回值类型 方法名 参数类型 方法头}
实参:调用时传递的参数
形参:方法接收时的参数,相当于占位符
值传递和引用传递:Java是值传递,即在调用函数时将实际参数复制一份传递到函数中,不会影响到实际参数。
引用传递:引用传递就是直接把内存地址传过去,java中的引用类型是引用传递;
因为引用类型是存放在堆中,地址存放在栈中,传参时传递的是地址的复制;
方法的重载
相同的函数名称,不同的形参
规则:1、方法名必须相同;2、参数列表必须不同;3、仅返回类型不同不能成为重载
方法的可变参数
命令行传参:cmd执行.class时要在src中执行,包名.类名
可变参数:...只能放在最后面,调用时可以直接输入多个参数,或输入一个数组new int[]{1,2,3}
public static void test(int... nums){
递归
递归头(终止语句)和递归体
流程:边界条件->前阶段->返回阶段
不同修饰符(static)的方法调用问题
static定义的方法如何调用非static定义的方法
1、new一个实例,然后调用
2、将非static改为static
原因:static修饰的方法会在很早初始,此时一般方法还未读入,会报错