javaSE学习 day02

目录

方法

方法是什么

方法的定义

位置

具体格式

自定义方法注意事项

方法如何使用

位置

调用格式

方法的重载

类型转换

自动类型转换

强制类型转换

格式

注意事项

表达式的自动类型转换是什么

表达式的最终结果类型由谁决定

表达式需要注意哪些类型转换

键盘录入

键盘录入是什么

如何实现键盘录入

运算符

算数运算符

“+”的特殊运用

自增自减运算符

赋值运算符

关系运算符

三元运算符

逻辑运算符

综合小案例

BMI与BMR的计算


并不是教学,仅供作者本人复习使用。 

方法

方法是什么

方法是一种用于执行特定任务或操作的代码块,代表一个功能,它可以接收数据进行处理,并返回一个处理后的结果。

方法的定义

位置

类中方法外

具体格式

修饰符 返回值类型 方法名(参数列表){方法体}

自定义方法注意事项

方法名:见名知意

参数列表:如果需要传入数据,格式(数据类型 变量名),多个之间用逗号隔开。

返回值:如果需要返回数据,返回值类型需与返回的数据类型保持一致。如果方法不需要返回数据,返回值类型必须声明成void(无返回值声明)方法内部可以不使用return返回数据

方法如何使用

位置

当前学习调用位置: 在main方法中调用,因为main程序的入口

调用格式

直接调用(适用于返回值是void类型)

public static void main(String[] args) {
        helloWorld();
    }

    public static void helloWorld() {
        for (int i = 0; i < 3; i++){
            System.out.println("hello world");
        }
    }

赋值调用、输出调用(适用于返回值有具体类型)

public static void main(String[] args) {
        System.out.println(printVariable(4));
        String a=printVariable(6);
        System.out.println(a);
    }

    public static String printVariable(int num) {
        String code="";
        for (int i = 0; i < num; i++){
            int num1= (int) (Math.random()*10);
            code+=num1;
        }
        return code;
    }

方法的重载

一个类中,出现多个方法的名称相同,但是它们的形参列表是不同的,那么这些方法就称为方法重载了。

public class Method03 {

    public static void main(String[] args) {
        int a=1;
        int b=2;
        int c=3;
        System.out.println(add(a,b));
        System.out.println(add(a,b,c));
    }

    public static int add(int a,int b) {
        int sum=a+b;
        return sum;
    }

    public static int add(int a,int b,int c) {
        int sum=a+b+c;
        return sum;
    }
}

类型转换

自动类型转换

类型范围小的变量,可以直接赋值给类型范围大的变量。

 范围比较
 byte---> short ---> int ---> long ---> float ---> double
                      ^
                      |
                     char
public static void main(String[] args) {
        byte a=11;
        short b=a;
        int c=a;
        long d=a;
    }

以上变量a由于范围小,则可以直接赋值给变量b、c、d

强制类型转换

类型范围大的变量, 不可以直接赋值给类型范围小的变量,会报错,需要强制类型转换过去

格式

数据类型 变量1=(数据类型) 变量2

public static void main(String[] args) {
        int m=1500;
        byte n=(byte)m;
        System.out.println(n);
    }

此时由于m的范围大于n,所以需要强制转换,但此时出现了数据(丢失)溢出。

注意事项

数据丢失:范围大的的数据字节超过了范围小的可承受的最大范围,就会出现丢失

表达式的自动类型转换是什么

在表达式中,小范围类型的变量,会自动转换成表达式中较大范围的类型,再参与运算。

byte 、short、char ---> int ---> long ---> float ---> double
public static void main(String[] args) {
        byte a=10;
        double b=3.14;
        double c=a+b;
        System.out.println(c);
    }

此时可以看到变量a在经过表达式后,类型由byte转为int输出。

表达式的最终结果类型由谁决定

表达式的最终结果类型由表达式中的最高类型决定。

表达式需要注意哪些类型转换

byte short char是直接转换成int类型参与运算的。

public static void main(String[] args) {
        char d='a';
        char e='b';
//        char f=d+e;报错
        int f=d+e;
        System.out.println(f);
    }

键盘录入

键盘录入是什么

将控制台录入的数据,传递给程序去使用。

如何实现键盘录入

(1)导包

        告诉程序去JDK的哪个包中找扫描器技术

        位置:类的上方

(2)创建对象

        代表得到键盘扫描器对象

        位置:需要键盘录入的方法中。

(3)调用方法

        等待接收用户输入数据

        位置:哪里需要哪里调,建议 在调用键盘录入操作之前做个友情提示

        主要的三种:nextInt(输入整数)、next(输入字符串)、nextDouble(输入小数)

public static void main(String[] args) {
        //2:创建Scanner对象
        Scanner sc = new Scanner(System.in);
        //在接收键盘录入数据之前 做个友情提示
    
        //键盘录入一个年龄 去接收
        System.out.println("请输入您的年龄:");
        // sc.nextInt() 等待用户实现键盘录入一个整数 回车一下 才会继续往下
        int age = sc.nextInt();//使用int 类型变量 age 去接收 sc调用nextInt()方法获取到的数据
        System.out.println("您的年龄是:"+age);
    
        //键盘录入一个姓名去接收
        System.out.println("请输入您的姓名:");
        // sc.next() 接收用户录入字符串数据
        String name = sc.next();
        System.out.println("您的姓名是:"+name);
    }

运算符

算数运算符

符号作用说明
+参考小学一年级
-参考小学一年级
*参考小学二年级,与“×”相同
/与“÷”相同,注意:在Java中两个整数相除结果还是整数。
%取余获取的是两个数据做除法的余数

“+”的特殊运用

“+”符号与字符串运算的时候是用作连接符的,其结果依然是一个字符串。如何识别+符号是做运算,还是做连接,独门秘籍:能算则算,不能算就连接在一起。

public static void main(String[] args) {
        int a = 5 ;System.out.println("abc" + a);
        System.out.println(a + 5);
        System.out.println("abc"+ a + 'a');
        System.out.println(a + 'a' + "abc");
    }

特别注意最后一个结果,a字符转换为97进行计算。

自增自减运算符

符号作用说明
++自增放在某个变量前面或者后面,对变量自身的值加1
--自减放在某个变量前面或者后面,对变量自身的值减1

单独使用:

++、-- 如果在变量前后单独使用是没有区别的。

public static void main(String[] args) {
        int a=5;
        a++;
        System.out.println(a);
        ++a;
        System.out.println(a);
    }

非单独使用:

++ 在变量前 表示 先增后用 ++ 在变量后先用后增

public static void main(String[] args) {
        int m = 10;
        int x = m++;// ++在变量的后面  先用后增
        System.out.println("x的值:"+x);//10  why? 因为 ++在变量的后面,所以先赋值把m初始值10赋值给了x,m再加1
        System.out.println("m的值:"+m);//11
        int n = 10;
        int y = ++n;//++在变量的前面 先增后用
        System.out.println("y的值:"+y);//11 why? 因为 ++在变量的前面,所以n先加1再赋值给y y是11 n也是11
        System.out.println("n的值:"+n);//11
    }

小测试:

    public static void main(String[] args) {
        int c=10;
        int d=5;
        int rs3=c++ + ++c - --d - ++d + 1 + c--;
        System.out.println("rs3的值:"+rs3);
        System.out.println("c的值:"+c);
        System.out.println("d的值:"+d);
    }

赋值运算符

符号用法作用底层代码形式
=a=b赋值
+=a+=b加后赋值 a = (a的类型)(a + b);
-=a-=b减后赋值 a = (a的类型)(a - b);
*=a*=b乘后赋值 a = (a的类型)(a * b);
/=a/=b除后赋值 a = (a的类型)(a / b);
%=a%=b取余后赋值 a = (a的类型)(a % b);

注意:扩展的赋值运算符隐含了强制类型转换。

public static void main(String[] args) {
        //目标 掌握 赋值运算符的使用
        // 基本的赋值运算符  =
        int a = 10;//将10 赋值给 变量a
        int b = 20;
        //扩展运算符的结论  其实就是将左右两边数据进行运算,将运算的结果赋值给左边。

        a += b;//将a和b进行加法运算 将运算的结果赋值给a
        // += 表示将左右两边数据进行加法运算,将结果赋值给左边
        System.out.println(a);
        System.out.println(b);

        //演示一下其他的扩展赋值运算符 a 30 b 20
        a -= b;
        System.out.println(a);//10

        a *= b;
        System.out.println(a);//200

        a /= b;
        System.out.println(a);//10

        a %= b;
        System.out.println(a);//10
        System.out.println("---------深入研究一个原理-----");
        byte b1 = 3;
        byte b2 = 4;
//       b1 = b1+b2;//byte数据参与运算会变成int 所以想要成功需要做强转
        // b1 = (byte) (b1+b2);
        b1 += b2;//没有报错 说明b1+=b2的底层 有强制转换
    }

关系运算符

符号例子作用结果
>a>b判断a是否大于b成立返回true、不成立返回false
>=a>=b判断a是否大于或者等于b同上
<a<b判断a是否小于b同上
<=a<=b判断a是否小于或者等于b同上
==a==b判断a是否等于b同上
!=a!=b判断a是否不等于b同上

注意:在java中判断是否相等一定是“== ” ,千万不要把  “== ”误写成 “=”。  

三元运算符

格式:

条件表达式?值1:值2

执行流程:

首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2

public static void main(String[] args) {
        System.out.println(bijiao(5,7));
        System.out.println(bijiao(5,7,9));
    }
    public static int bijiao(int a,int b){
        return a>b?a:b;
    }
    public static int bijiao(int a,int b,int c){
        return a>b?(a>c?a:c):(b>c?b:c);
    }

逻辑运算符

把多个条件放在一起运算,最终返回布尔类型的值:true、false。

符号叫法例子运算逻辑
&逻辑与2 > 1 & 3 > 2多个条件必须都是true, 结果才是true;  有一个是false,结果就是false
|逻辑或2 > 1 |  3 < 5多个条件中只要有一个是true, 结果就是true;
逻辑非! (2 > 1)就是取反:你真我假,你假我真。!true == false、!false == true
^逻辑异2 > 1 ^ 3 > 1前后条件的结果相同,就直接返回false,前后条件的结果不同,才返回true
&&短路与2 > 10 && 3 > 2判断结果与“&”一样,过程不同:左边为 false,右边则不执行。
||短路或2 > 1 | | 3 < 5判断结果与“|”一样,过程不同:左边为 true, 右边则不执行。

注意:在java中, “&” 、 “|”:   无论左边是 false还是 true,右边都要执行。

注意:实际开发中、常用的逻辑运算符还是:&& 、 || 、 !

综合小案例

BMI与BMR的计算

package com.zb.test;

import java.util.Scanner;

public class Bmi {

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入身高(米):");
        Double height=sc.nextDouble();
        System.out.println("请输入体重(kg):");
        Double weight=sc.nextDouble();
        System.out.println("请输入性别(男/女):");
        String sex=sc.next();
        System.out.println("请输入年龄:");
        int age=sc.nextInt();
        System.out.println("您的bmi为:"+bmi(height,weight));
        System.out.println("您的bmr为:"+bmr(height,weight,age,sex.charAt(0)));
    }

    public static Double bmi(Double height,Double weight) {
        return weight/(height*height);
    }

    public static Double bmr(Double height,Double weight,int age,char sex) {
        double bmr=0;
        if (sex=='男'){
            return 88.362+(13.397*weight)+(4.799*height)-(5.677*age);
        }else if (sex=='女'){
            return 447.593+(9.247*weight)+(3.098*height)-(4.330*age);
        }
        return bmr;
    }

}

  • 15
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习JavaSE可以通过以下几个步骤进行: 1. 了解JavaSE的基础知识:JavaSE是Java的标准版,主要用于开发桌面应用程序。你可以开始学习JavaSE的基础语法、数据类型、控制流程等内容。可以参考\[3\]中提到的Java是一种跨平台、面向对象的高级程序设计语言,其语法和C++类似。 2. 学习JavaSE的核心概念:JavaSE包含了许多核心概念,如面向对象编程、异常处理、多线程等。你可以通过阅读相关的教程、书籍或参加培训课程来深入学习这些概念。 3. 实践编写JavaSE程序:学习JavaSE最好的方式是通过实践编写程序来加深理解。你可以尝试编写一些简单的JavaSE应用程序,如控制台程序、图形界面程序等。通过实践,你可以更好地理解JavaSE的各种特性和用法。 4. 参考JavaSE的官方文档和教程:JavaSE有详细的官方文档和教程,你可以参考官方文档来了解JavaSE的各种API和用法。此外,还可以参考一些优秀的JavaSE教程和书籍,如《Java核心技术》等。 总结起来,学习JavaSE需要掌握基础知识、核心概念,并通过实践编写程序来加深理解。同时,参考官方文档和教程可以帮助你更好地学习和应用JavaSE。 #### 引用[.reference_title] - *1* *2* *3* [教你如何正确学习JAVASE](https://blog.csdn.net/jsqzy/article/details/120726118)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值