java基础篇
IDEA常用快捷键
快捷键 | 功能 |
Alt+Enter | 自动修正代码 |
Ctrl+Y | 删除光标所在行 |
Ctrl+D | 复制光标所在行的内容,插入光标位置下面 |
Ctrl+Alt +L | 格式化代码 |
Ctrl+/ | 单行注释,再按取消注释 |
Ctrl+Shift+/ | 选中代码注释,多行注释,再按取消注释。 |
Alt+Ins | 自动生成代码,toString,get,set等方法 |
Alt+Shift+上下箭头 | 移动当前代码行 |
API概述和使用步骤
API使用步骤
JDK 1.6 API 中文版
JDK链接: https://pan.baidu.com/s/1TO9hgDfMcS_N2q1y40s13Q 提取码:
e55f
1.打开帮助文档
2.点击显示,找到索引,看到输入框
3.你要找谁?在输入框里输入然后回车
4.看包。java.lang下的类不需要导包,其他需要
5.看类的解释和说明。
6.学习构造方法。
7.使用成员方法。
Scanner概述及其API文档的使用
- Scanner的使用步骤
package cn.itcast.day01.demo01.scanner;
import java.util.Scanner; // 第一步:导包 书写位置:package语句 和 public语句之间。
/*
* Scanner类的功能:可以实现键盘输入数据,到程序当中。
* 引用类型的一般使用步骤:
* 1.导包
* import 包路径.类名称;
* 如果需要使用的目标类,和当前类位于同一个包下,则可以省略导包语句不写。
* 只有java.lang包下的内容不需要导包。其他的包都需要import语句。
* 例如:String类 位于 java.lang 包下 (查询API文档得知)
*
* 2.创建
* 类名称 对象名 = new 类名称();
*
* 3.使用
* 对象名.成员方法名()
*
* 获取键盘输入的一个int数字:int num = sc.nextInt();
* 获取键盘输入的一个字符串:String str = sc.next();
* */
public class Demo01Scanner {
public static void main(String[] args) {
/*
* 第二步:创建
* 备注:System.in代表从键盘进行输入
* */
Scanner sc = new Scanner(System.in);
// 3.获取键盘输入的int数字。
int num = sc.nextInt(); // 把输入的字符串化成数值
System.out.println("输入的int数字是:" + num);
// 3.获取键盘输入的一个字符串:
String str = sc.next();
System.out.println("输入的字符串是:" + str);
}
}
Scanner练习
键盘输入两个数字求和
package cn.itcast.day01.demo01.scanner;
import java.util.Scanner; // 这句代码不需要自己写
/*
* 题目:键盘输入两个int数字,并且求出和值。
*
* 思路:
* 1.既然需要键盘输入,那么就用Scanner
* 2.Scanner的三个步骤:导包、创建、引用
* 3.需要的是两个数字,所以要调用两次nextInt方法
* 4.得到了两个数字,就需要加在一起。
* 5.将结果打印输出。
* */
public class Demo02ScannerSum {
public static void main(String[] args) {
// 书写 Scanner ,选择第一个提示:自动生成导包语句
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数字:");
int a = sc.nextInt();
System.out.println("请输入第二个数字:");
int b = sc.nextInt();
int result = a + b;
System.out.println("结果是:"+ result);
}
}
键盘输入三个数字求最大值
package cn.itcast.day01.demo01.scanner;
import java.util.Scanner;
/*
* 题目:键盘输入三个int数字,然后求出其中最大值
*
* 思路:
* 1.既然是键盘输入,肯定需要用到Scanner
* 2.Scanner三个步骤:导包、创建、使用nextInt()方法
* 3.既然是三个数字,那么调用三次nextInt()方法,得到三个int变量
* 4.无法同时判断三个数字谁最大,应该转换成为两个步骤:
* 4.1首先判断前两个当中谁最大,拿到前两个的最大值
* 4.2拿着前两个中的最大值,再和第三个数字比较,得到三个数字当中的最大值。
* 5.打印最终结果
* */
public class Demo03ScannerThree {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 赋值
System.out.println("请输入第一个数字:");
int a = sc.nextInt();
System.out.println("请输入第二个数字:");
int b = sc.nextInt();
System.out.println("请输入第三个数字:");
int c = sc.nextInt();
// 比较大小:首先得到前两个数字当中的最大值
int temp = a > b ? a : b;
int max = temp > c ? temp : c;
System.out.println("最大值是:" + max);
}
}
匿名对象
package cn.itcast.day01.demo01.anonymous;
public class Person {
// 成员变量
String name;
public void showName() {
System.out.println("我是:" + name);
}
}
package cn.itcast.day01.demo01.anonymous;
/*
* 创建对象的标准格式:
* 类名称 对象名 = new 类名称();
*
* 匿名对象就是只有右边的对象,没有左边的名字和赋值运算符。
* new 类名称();
*
* 注意事项:匿名对象只能使用唯一的一次;下次再用不得不再创建一个新对象。
* 使用建议:如果确定有一个对象只需要使用唯一的一次,就可以用匿名对象。
* */
public class Demo01Anonymous {
public static void main(String[] args) {
// 左边的one就是对象的名字
Person per = new Person();
per.name = "刘诗诗";
per.showName(); // 我是刘诗诗
System.out.println("===========");
// 匿名对象
new Person().name = "吴奇隆";
new Person().showName(); // 我是:null。
/*
* 解释原因:
* 每new一次就是创建一个新的对象,而 new Person().name = "吴奇隆";
* 这个变量赋值,只属于这个对象。取名为对象A
*
* new Person().showName(); 此时创建一个对象B,而此时并没有给name赋值,
* 所以调用其方法,显示我是:null
*
* */
}
}
匿名对象作为方法的参数和返回值
package cn.itcast.day01.demo01.anonymous;
import java.util.Scanner;
public class Demo02Anonymous {
public static void main(String[] args) {
// 普通方式
// Scanner sc = new Scanner(System.in);
// int num = sc.nextInt();
// 匿名对象的方式
// int num = new Scanner(System.in).nextInt();
// System.out.println("输入的是" + num);
// 使用一般写法传入参数
// Scanner sc = new Scanner(System.in);
// methodParam(sc);
// 方式二:使用匿名对象进行传参
// methodParam(new Scanner(System.in));
/*
* 方式三:使用匿名对象作为返回值
* 通过调用方法 methodReturn();拿到Scanner对象交给sc
* 然后通过 sc.nextInt(); 拿到输入的值
* */
Scanner sc = methodReturn();
int num = sc.nextInt();
System.out.println("输入的是"+num);
}
// 方式二:使用匿名对象进行传参
public static void methodParam(Scanner sc) {
// 使用快键键:手动书写 sc.nextInt(); 然后按快键键 alt + enter,选择第一项
int num = sc.nextInt();
System.out.println("输入的是"+ num);
}
// 一般写法
// public static Scanner methodReturn() {
// Scanner sc = new Scanner(System.in);
// return sc;
// }
// 方式三:匿名对象作为返回值
public static Scanner methodReturn() {
return new Scanner(System.in);
}
}
Random概述和基本使用
Random生成指定范围的随机数
package cn.itcast.day01.demo01.random;
import java.util.Random;
/*
* Random类用来生成随机数字。使用起来也是三个步骤:
* 1.导包
* import java.util.Random
*
* 2.创建
* Random r = new Random();
*
* 3.使用
* 获取一个随机的int数字(范围是int所有范围,有正负两种);int num = r.nextInt()
* 获取一个随机的int数字(参数代表了范围,左闭右开区间);int num = r.nextInt(3)
* 实际上代表的含义是:[0,3),也就是0~2
*
* */
public class Demo01Random {
public static void main(String[] args) {
Random r = new Random();
int num = r.nextInt(3);
System.out.println("随机数:" + num);
}
}
生成1~n之间的随机数
package cn.itcast.day01.demo01.random;
import java.util.Random;
/*
* 题目要求:根据int变量n的值,来获取随机数字,范围是[1,n],可以取到1也可以取到n
*
* 思路:
* 1.定义一个int变量n,随意赋值
* 2.要使用Random:三个步骤,导包、创建、使用
* 3.如果写10,那么就是0~9,然而想要的是1~10,可以发现:整体+1即可。
* 4.打印随机数字
* */
public class Demo03Random {
public static void main(String[] args) {
int n = 5;
Random r = new Random();
int result = r.nextInt(n) + 1;// 本来范围是[0,n),整体+1之后变成[1,n+1),也就是[1,n]
System.out.println(result);
}
}
猜数字小游戏
package cn.itcast.day01.demo01.random;
import java.util.Random;
import java.util.Scanner;
/*
* 题目:猜数字游戏
*
* 思路:
* 1.首先需要产生一个随机数字,并且一旦产生不再变化。用Random的nextInt方法
* 2.需要键盘输入,所以用到了Scanner
* 3.获取键盘输入的数字,用 Scanner 当中的nextInt方法
* 4.已经得到了两个数字,判断一下:
* 如果太大了,提示:太大,并且重试
* 如果太小了,提示:太小,并且重试
* 如果猜中了,游戏结束
* 5.重试就是再来一次,循环次数不确定。用 while(true) { }
* */
public class Demo04Random {
public static void main(String[] args) {
Random r = new Random();
int randomNum = r.nextInt(100) + 1; // [1,100]
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("请输入你猜测的数字:");
int guessNum = sc.nextInt(); // 键盘输入猜测的数字
if(guessNum > randomNum) {
System.out.println("太大了,请重试");
} else if (guessNum < randomNum) {
System.out.println("太小了,请重试");
} else {
System.out.println("恭喜你,猜中啦!");
break; // 如果猜中,不再重试;游戏结束
}
}
System.out.println("游戏结束");
}
}
对象数组
package cn.itcast.day01.demo01.array;
public class Person {
private String name;
private int age;
// 有参数的构造方法
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 无参数构造方法
public Person() {
}
// Getter/Setter方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package cn.itcast.day01.demo01.array;
/*
* 题目:定义一个数组,用来存储3个Person对象
*
* 数组有一个缺点:一旦创建,程序运行期间长度不可以发生改变。
* */
public class Demo01Array {
public static void main(String[] args) {
// 首先创建一个长度为3的数组,里面用来存放Person类型的对象
Person[] array = new Person[3];
// 通过构造方法,进行成员变量赋值
Person one = new Person("迪丽热巴", 18);
Person two = new Person("杨幂", 28);
Person three = new Person("金智贤", 38);
// 将one当中的地址值赋值到数组的0号元素位置
array[0] = one;
array[1] = two;
array[2] = three;
System.out.println(array[0]); // 地址值
System.out.println(array[1]); // 地址值
System.out.println(array[2]); // 地址值
System.out.println(array[1].getName()); // 杨幂
}
}