javaSE 【数据类型转换、运算符、方法入门】总结

一、数据类型的转换
1.隐式转换

        /*
            数据类型转换-隐式转换

            byte short int long  float double  char  boolean

            数据类型隐式提升的规则
            byte/short/char --> int --> long --> float --> double
        */
        public class Demo01DataType {
            public static void main(String[] args) {
                int num1 = 10;
                int num2 = 20;

                //求和的动作
                int sum = num1 + num2;

                System.out.println(sum);

                System.out.println("========================");

                byte b1 = 10;
                int i2 = 20;

                //求和动作
                int sum2 = b1 + i2;

                System.out.println(sum2);

                System.out.println("========================");

                byte by1 = 20;
                byte by2 = 20;

                //求和动作
                int sum3 = by1 + by2;

                System.out.println(sum3);
            }
        }
2.强制转换
    /*
        数据类型转换-强制转换

        使用的场景:
            当我们要将大的数据类型赋值给较小的数据类型的时候

        强制转换格式:
            数据类型 变量名 = (目标数据类型)(变量值);

        数据类型隐式提升的规则
        byte/short/char --> int --> long --> float --> double
    */
        public class Demo02DataType {
            public static void main(String[] args) {
                byte num1 = 10;
                int num2 = 20;

                //求和动作
                byte sum = (byte)(num1 + num2);

                System.out.println(sum);

                System.out.println("====================");

                int i1 = 20;
                short s2 = 20;

                //求和
                short sum2 = (short)(i1 + s2);

                System.out.println(sum2);
            }
        }
3.java语言的两种优化机制
    byte、short、char  如果你的赋值的结果没有超过取值范围,那么可以直接进行赋值
    常量优化机制:如果我们参与运算的全都是常量,那么编译器会直接进行运算得到结果。
                  如果结果没有超过左边数据类型的范围,那么就会直接进行赋值
                  如果结果超过了左边数据类型的范围,那么就报错
                  例如:   byte sum1 = 5 + 5;
                            byte sum2 = 200 + 100;
4.编码表
    ASCII码表:小的编码表
    unicode码表:万国表

    'a'   97
    '0'   48
    'A'   65

二、运算符
算数运算符 赋值运算符 比较运算符 逻辑运算符 三元运算符

1.算数运算符
    +:加法
    -:减法
    *:乘法
    /:除法     (整数相除,结果只能是整数)(如果想得到小数的结果,只需要将其中之一的变量改成小数类型)
    %:取余数   (整数相除,才能得到余数)
    示例代码:
        class Demo02Operator {
                public static void main(String[] args) {
                    //加法
                    System.out.println(5 + 5);  // 10

                    //减法
                    System.out.println(10 - 2); // 8

                    //乘法
                    System.out.println(5 * 6);  // 30

                    //除法
                    System.out.println(10 / 3); // 3

                    //取余
                    System.out.println(10 % 3); // 1

                    //字符和+号进行连接。将字符对应的码表值参与运算
                    char ch1 = 'a';     // 'a' 97
                    System.out.println(ch1 + 1);    // 98

                    //字符串和+号进行连接。任何数据和字符串进行相连接,都会产生一个新的字符串
                    System.out.println("5+5=" + 5 + 5); // 5+5=55
                    System.out.println(5 + 5 + "=5+5"); // 10=5+5
                    System.out.println("5+5=" + (5+5)); // 5+5=10

                    System.out.println("=====================");

                    int num1 = 10;
                    int num2 = 20;
                    int sum = num1 + num2;  // 30
                                    // 10     +     20     的和是:30
                    System.out.println(num1 + "+" + num2 +"的和是:" + sum);
                }
            }
    ++:将变量进行自增
    --:将变量进行自减
    第一种情况:单独使用。++或者--放在变量的前面或者是后面。没有区别,都是将原值进行自增或者自减
    第二种情况:参与运算使用
        A:如果++或者--放在变量的前面,先将变量进行自增或者自减。然后再参与运算
        B:如果++或者--放在变量的后面,先将变量原值拿出来使用。然后再自增或者自减
    示例代码:
            class Test02 {
                public static void main(String[] args) {
                    //单独使用   也是最常用的
                    int num1 = 10;
                    num1++;
                    System.out.println(num1);   // 11

                    int num2 = 20;
                    --num2;
                    System.out.println(num2);   // 19

                    System.out.println("==============");

                    //参与运算
                    int i1 = 10;    // 11
                    int i2 = 20;    // 19
                    //  sum1 = 10 + 19
                    int sum1 = i1++ + --i2; 
                    System.out.println(sum1);       // 29
                    System.out.println(i1);         // 11
                    System.out.println(i2);         // 19
                }
            }
    练习题目:
/*
            需求:
                有一个数字:123
                获取这个数字的个位、十位、百位数各自是多少
                个位数是3
                十位数是2
                百位数是1
        */
        class Test01{
            public static void main(String[] args) {
                int num = 123;
                //       123 % 10 = 3
                int ge = num % 10;
                //       123 / 10 % 10 = 2
                int shi = num / 10 % 10;
                //        123 / 10 / 10 % 10
                int bai = num / 10 / 10 % 10;

                System.out.println("个位数是:" + ge);
                System.out.println("十位数是:" + shi);
                System.out.println("百位数是:" + bai);
            }
        }
2.赋值运算符
    =:将等号右边的值赋值给等号左边的变量
    +=      a += 3      相当于     a = a + 3
    -=      b -= 4      相当于     b = b - 4
    *=      c *= 5      相当于     c = c * 5
    /=      d /= 6      相当于     d = d / 6
    %=      e %= 7      相当于     e = e % 7
    扩展的赋值运算符注意事项:会自动类型转换
    例如:
        //错误的写法
        byte num1 = 10;
        num1 = num1 + 5;
        System.out.println(num1);

        //扩展赋值运算符
        byte num1 = 10;
        // num1 += 5 等效于 num1 = (byte)(num1 + 5)
        num1 += 5;
        System.out.println(num1);

3.比较运算符
    /*
    比较运算符:
    大于:     >
    小于:     <
    大于等于:   >=
    小于等于:   <=
    相等:     ==  【两个等号连写才是相等,一个等号代表的是赋值】
    不相等:    !=

    注意事项:
    1. 比较运算符的结果一定是一个boolean值,成立就是true,不成立就是false
    2. 如果进行多次判断,不能连着写。
    数学当中的写法,例如:1 < x < 3
    程序当中【不允许】这种写法。
    */
        public class Demo08Operator {
            public static void main(String[] args) {
                System.out.println(10 > 5); // true
                int num1 = 10;
                int num2 = 12;
                System.out.println(num1 < num2); // true
                System.out.println(num2 >= 100); // false
                System.out.println(num2 <= 100); // true
                System.out.println(num2 <= 12); // true
                System.out.println("===============");

                System.out.println(10 == 10); // true
                System.out.println(20 != 25); // true
                System.out.println(20 != 20); // false

                int x = 2;
                // System.out.println(1 < x < 3); // 错误写法!编译报错!不能连着写。
            }
        }
4.逻辑运算符
    &&:并且  有false则整个结果都是false 必须全部都是true,整个结果才是true
    ||:或者  有true则整个结果都是true。
    !:取反   非true则false   非false则true。
    示例代码:
        public class Test03 {
            public static void main(String[] args) {
                int num1 = 10;
                int num2 = 20;

                // && 并且 如果左边是false,右边就不再执行了
                //               false             && 
                //boolean flag = ((num1++ + 10 < 20) && (num2++ + 5 > 5));
                //System.out.println(flag); // false
                //System.out.println(num1); // 11
                //System.out.println(num2); // 20

                // || 或者 如果左边是true,右边就不再执行了
                //      flag2 =           true      || 
                boolean flag2 = ((++num1 + 5 >= 10) || (--num2 + 6 < 20));
                System.out.println(flag2);  // true
                System.out.println(num1);   // 11
                System.out.println(num2);   // 20

                // ! 取反
                System.out.println(!(true && false));   // true
                System.out.println(!true && false);     // false
            }
        }
5.三元运算符
    定义格式:
        数据类型 变量名 = 比较表达式 ? 表达式A : 表达式B;
    执行流程:
        先判断比较表达式,如果是true。那么将表达式A进行赋值
                          如果是false。那么将表达式B进行赋值
    示例代码:
        public class Test04 {
            public static void main(String[] args) {
                //需求一:获取两个数据中的较大值
                int num1 = 10;
                int num2 = 20;

                int max = num1 > num2 ? num1 : num2;

                System.out.println("最大值:" + max);

                System.out.println("==================");

                //需求二:获取三个数据中的较大值
                int i1 = 10;
                int i2 = 30;
                int i3 = 20;

                //先获取前两个数的较大值
                int temp = i1 > i2 ? i1 : i2;

                //使用前两个数中的较大值和第三个数进行比较
                int max2 = temp > i3 ? temp : i3;

                System.out.println("最大值:" + max2);

                System.out.println("==================");

                //需求三:定义一个成绩65分。如果成绩大于等于60分。输出一个"及格"  否则 输出"不及格"
                int score = 58;
                String result = score >= 60 ? "及格" : "不及格";
                System.out.println(result);
            }
        }

三、方法
1.什么是方法
就是指可以完成特定功能的一段代码块
2.方法的作用
A:可以提高代码的阅读性
B:可以提高代码的复用性
3.方法的定义格式
public static void 方法名() {
方法体; // 就是你要执行的代码
}

4.示例代码:
        public class Demo11Method {
            public static void main(String[] args) {
                farmer(); // 调用农民的方法
                seller(); // 调用小商贩的方法
                cook(); // 调用厨子的方法
                me(); // 调用我自己的方法
            }

            // 厨子
            public static void cook() {
                System.out.println("洗菜");
                System.out.println("切菜");
                System.out.println("炒菜");
                System.out.println("装盘");
            }

            // 我
            public static void me() {
                System.out.println("吃");
            }

            // 小商贩
            public static void seller() {
                System.out.println("运输到农贸市场");
                System.out.println("抬高价格");
                System.out.println("吆喝");
                System.out.println("卖给厨子");
            }

            // 农民伯伯
            public static void farmer() {
                System.out.println("播种");
                System.out.println("浇水");
                System.out.println("施肥");
                System.out.println("除虫");
                System.out.println("收割");
                System.out.println("卖给小商贩");
            }
        }
    5.示例代码2/*
            模拟植物大战僵尸

            将发射炮弹这一步骤进行抽取
            把它抽取成方法
        */
        public class Test05 {
            public static void main(String[] args) {
                System.out.println("一大波僵尸来了~~~");
                fire();

                System.out.println("一大波僵尸来了~~~");
                fire();

                System.out.println("一大波僵尸来了~~~");
                fire();
            }


            public static void fire() {
                System.out.println("Biu~");
                System.out.println("Biu~");
                System.out.println("Biu~");
                System.out.println("发射炮弹!");
            }
        }

四、JDK9版本的新特性
JShell的基本使用:
打开命令行,输入:jshell
就可以书写简单的java代码了

五、键盘录入
    /*
        键盘录入:
        1.导包      : import java.util.Scanner;
        2.创建对象  : Scanner sc = new Scanner(System.in);
        3.调用方法  : 
            输入整数的方法:sc.nextInt();
            输入小数的方法:sc.nextDouble();
            输入字符串的方法: sc.nextLine();
    */

    import java.util.Scanner;
    public class Test06{
        public static void main(String[] args) {
            //第二步:创建键盘录入对象
            Scanner sc = new Scanner(System.in);

            System.out.println("请输入一个字符串:");

            //接收一个整数
            //int num = sc.nextInt();

            //接收一个小数
            //double num = sc.nextDouble();

            //接收一个字符串
            String s = sc.nextLine();

            //输出
            System.out.println(s);
        }
    }

猜你喜欢

转载自blog.csdn.net/jmj18756235518/article/details/81136837
今日推荐