首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【JavaSE】运算符 && switch && 输入输出 && 方法的概念与使用 && 方法重载

【JavaSE】运算符 && switch && 输入输出 && 方法的概念与使用 && 方法重载

原创
作者头像
lirendada
发布2026-03-02 07:49:25
发布2026-03-02 07:49:25
560
举报
文章被收录于专栏:JavaJava

Ⅰ. 逻辑运算符

java 中,凡是参加的逻辑运算的都必须得是 boolean 类型,比如说不能这样子:

代码语言:javascript
复制
int a = 0;
int b = 0;

if(a && b) // 报错,因为a和b都是int类型,不能参与逻辑运算
    //.....

正确的写法:

代码语言:javascript
复制
int a = 0;
int b = 0;

if(a == 0 && b == 0)
    //.....

Ⅱ. 移位运算符

java 中多了一个无符号右移:

  • 无符号右移 >>>: 最右侧位不要了,最左侧补 0
  • 右移 >>:最右侧位不要了,最左侧补符号位(正数补0, 负数补1
  • 左移 <<:最左侧位不要了,最右侧补 0

Ⅲ. 条件运算符

  • 表达式2和表达式3的结果要是同类型的,除非能发生类型隐式转换
代码语言:javascript
复制
int a = 10; 
int b = 20; 
int c = a > b? 1 : 2.0; // ❌c应该是double类型才对
  • 表达式不能单独存在,其产生的结果必须要被使用
代码语言:javascript
复制
int a = 10; 
int b = 20; 
a > b ? a : b; // ❌表达式未被使用

Ⅳ. switch语句

  • longfloatdoubleboolean 类型不支持 switch 语句
  • 最好每个 case 中要加 break
  • 多个 case 后的常量值不可以重复
  • switch 不能表达复杂的条件
  • 枚举类字符串类是支持 switch 语句的

Ⅴ. 输入输出

一、输出到控制台

代码语言:javascript
复制
System.out.println(msg);        // 输出一个字符串, 带换行
System.out.print(msg);          // 输出一个字符串, 不带换行
System.out.printf(format, msg); // 格式化输出
  • println 输出的内容自带 \n, 而 print 不带 \n
  • printf 的格式化输出方式和C语言的 printf 是基本一致的

二、从键盘输入

使用 Scanner 类可以读取字符串、整数、浮点数:

代码语言:javascript
复制
import java.util.Scanner; // 需要导入 util 包
 
Scanner sc = new Scanner(System.in);

System.out.println("请输入你的姓名:");
String name = sc.nextLine();

System.out.println("请输入你的年龄:");
int age = sc.nextInt();

System.out.println("请输入你的工资:");
float salary = sc.nextFloat();

System.out.println("你的信息如下:");
System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);

sc.close(); // 注意, 要记得调用关闭方法

// 执行结果
请输入你的姓名:
张三
请输入你的年龄:
18
请输入你的工资:
1000
你的信息如下:
姓名: 张三
年龄:18
工资:1000.0

下面是 next()nextLine() 的区别:

特性

next()

nextLine()

读取内容

读取一个单词,遇到空白符(空格、Tab、回车)就停止

读取整行,直到回车为止

是否包括回车

不包括回车符(回车留在输入缓冲区中)

包括回车符

空格行为

忽略前导空格,只读第一个单词

会读取整行,包括空格

适合用来做什么

读取一个词,如用户名、命令等

读取整行内容,如一句话、一段文本输入

  1. next() 吃词不吃行
  2. nextLine() 吃行吃回车
  3. 混用要清理,nextLine() 来兜底

Ⅵ. 方法的概念与使用

方法就是一个代码片段,类似于C语言中的 "函数"。

一、方法的定义

代码语言:javascript
复制
修饰符 返回值类型 方法名称([参数类型 形参 ...]) {
    方法体代码;
    [return 返回值];
}

格式解释:

  1. 修饰符:现阶段直接使用 public static 固定搭配
  2. 返回值类型:如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回值,必须写成 void
  3. 方法名字:采用 小驼峰 命名
  4. 参数列表:如果方法没有参数,则括号中什么都不写,如果有参数,需指定参数类型,多个参数之间使用逗号隔开

注意事项:

  • java中,方法必须写在类当中
  • java中,方法不能嵌套定义
  • java中,没有方法声明的说法

Ⅶ. 方法重载

一、方法重载的概念

  1. 方法名相同
  2. 参数列表不同(参数的个数不同、参数的类型不同、类型的次序必须不同)
  3. 与返回值类型无关

二、方法签名

在同一个作用域中不能定义两个相同名称的标识符。比如:方法中不能定义两个名字一样的变量,那为什么类中就可以定义方法名相同的方法呢❓❓❓

方法签名即经过编译器编译修改过之后方法最终的名字。具体方式:方法全路径名 + 参数列表 + 返回值类型,构成方法完整的名字。

代码语言:javascript
复制
public class TestMethod {
    public static int add(int x, int y){
        return x + y;
    }
    
    public static double add(double x, double y){
        return x + y;
    }
    
    public static void main(String[] args) {
        add(1,2); 
        add(1.5, 2.5);
    }
}

上述代码经过编译之后,然后使用 JDK 自带的 javap 反汇编工具查看,具体操作:

  1. 先对工程进行编译生成 .class 字节码文件
  2. 在控制台中进入到要查看的.class所在的目录
  3. 输入:javap -v 字节码文件名字

方法签名中的一些特殊符号如下表所示:

特殊字符

数据类型

V

void

Z

boolean

B

byte

C

char

S

short

I

int

J

long

F

float

D

double

[

数组:以 [ 开头,配合其他的特殊字符,表述对应数据类型的数组,几个 [ 表述几维数组

L

引用类型:以 L 开头,以 ; 结尾,中间是引用类型的全类名

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Ⅰ. 逻辑运算符
  • Ⅱ. 移位运算符
  • Ⅲ. 条件运算符
  • Ⅳ. switch语句
  • Ⅴ. 输入输出
    • 一、输出到控制台
    • 二、从键盘输入
  • Ⅵ. 方法的概念与使用
    • 一、方法的定义
  • Ⅶ. 方法重载
    • 一、方法重载的概念
    • 二、方法签名
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档