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()); // 杨幂
    }
}