当前位置: 首页 > news >正文

一文总结java语法规则

1. 题记

Java是一门拥有较强语法规则的编程语言,本博文主要总结介绍java语言的java语法规则。

2. java语法规则

2.1 标识符(Identifiers)

  1. 定义:标识符是用来给变量、类、方法、接口等命名的字符序列。
  2. 规则:
    –标识符可以由字母(A - Z、a - z)、数字(0 - 9)、美元符号($)和下划线(_)组成。
    –标识符必须以字母、美元符号或下划线开头,不能以数字开头。
    –标识符是大小写敏感的,例如,myVariable和myvariable是两个不同的标识符。
    –不能使用 Java 中的关键字(如class、public、private等)作为标识符,但可以包含关键字作为标识符的一部分,例如,myClass是合法的。
  3. 命名惯例:
    –变量和方法名通常采用小写字母开头的驼峰命名法,例如,myVariable、calculateSum。
    –类名和接口名通常采用大写字母开头的驼峰命名法,例如,MyClass、MyInterface。
    –常量(使用final关键字修饰)通常全部使用大写字母,单词之间用下划线分隔,例如,MAX_VALUE。

2.2 关键字(Keywords)

  1. 定义:关键字是 Java 语言中已经被赋予特定意义的单词,它们用于定义数据类型、控制程序流程、访问修饰符等。
    –数据类型相关:byte、short、int、long、float、double、char、boolean、class、interface、enum。
    –控制流程相关:if、else、switch、case、default、while、do、for、break、continue、return。
    –访问修饰符相关:public、private、protected、default(在包访问权限中)。

2.3 注释(Comments)

  1. 单行注释:以//开头,直到本行结束。例如:// 这是一个单行注释,用于解释下面代码的功能。
  2. 多行注释:以/开头,以/结束,可以跨越多行。例如:
    /*
    这是一个多行注释,
    可以用于详细解释一段代码的功能,
    或者提供版权信息等。
    */
  3. 文档注释(Javadoc):以/开头,以/结束,用于生成 API 文档。例如:
    /
    *
  • 这个方法用于计算两个整数的和。
  • @param a 第一个整数
  • @param b 第二个整数
  • @return 两个整数的和
    */
public int add(int a, int b) {return a + b;
}

2.4. 数据类型和变量声明

  1. 基本数据类型声明:
    –格式为数据类型 变量名;,例如:int age;声明了一个int类型的变量age。也可以在声明变量的同时进行初始化,如int num = 5;
    –对于多个相同类型的变量,可以在一行中声明,如int a, b, c;,也可以分别初始化,如int x = 1, y = 2, z = 3;
  2. 引用数据类型声明:
    以类为例,类名 变量名;,例如Person person;声明了一个Person类的变量person。在使用之前,需要通过new关键字创建对象来进行初始化,如person = new Person(“jack_Ma”, 50);

2.5 运算符(Operators)

  1. 算术运算符:
    –加法(+)、减法(-)、乘法(*)、除法(/)、取余(%):用于基本的数学运算。例如,int result = 5 + 3;(加法),int remainder = 7 % 3;(取余)。
    –自增(++)和自减(–)运算符:有前缀和后缀两种形式。前缀形式(如++i)是先将变量的值加 1,然后再使用变量的值;后缀形式(如i++)是先使用变量的值,然后再将变量的值加 1。例如,int i = 3; int j = i++;(此时j的值为 3,i的值为 4)。
  2. 关系运算符:
    等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=):用于比较两个值的大小关系。返回值为boolean类型。例如,boolean isEqual = (5 == 5);(返回true)。
  3. 逻辑运算符:
    逻辑与(&&)、逻辑或(||)、逻辑非(!):用于组合或反转boolean类型的条件。例如,boolean result = (a > 5 && b < 10);(只有当a > 5和b < 10同时为真时,result才为真)。
  4. 赋值运算符:
    –基本赋值(=):将右侧的值赋给左侧的变量。例如,int x = 3;。
    –复合赋值(+=、-=、*=、/=、%= 等):例如,x += 2;等价于x = x + 2;。

2.6 控制语句(Control Statements)

  1. 条件语句:
    if - else 语句: 根据条件执行不同的代码块。例如:
if (a > 10) {System.out.println("a大于10");
} else {System.out.println("a小于等于10");
}

switch - case 语句: 用于多分支选择。例如:

switch (dayOfWeek) {case 1:System.out.println("星期一");break;case 2:System.out.println("星期二");break;//...default:System.out.println("无效的星期");
}
  1. 循环语句:
    while 循环: 在条件为真时重复执行代码块。例如:
while (i < 10) {System.out.println(i);i++;
}

do - while 循环: 先执行一次代码块,然后在条件为真时重复执行。例如:

do {System.out.println(i);i++;
} while (i < 10);

for 循环: 用于已知循环次数的情况。例如:

for (int j = 0; j < 5; j++) {System.out.println(j);
}
  1. 跳转语句:
    break 语句: 用于跳出循环(while、do - while、for)或者switch语句。例如,在for循环中,当满足某个条件时提前结束循环。
    continue 语句: 用于跳过本次循环的剩余部分,直接开始下一次循环。例如,在for循环中,如果某个元素不符合条件,跳过对它的处理,直接处理下一个元素。

2.6 方法(Methods)

  1. 定义:方法是一段可以被重复调用的代码块,用于完成特定的功能。
  2. 格式:
    访问修饰符 返回值类型 方法名(参数列表) {
    // 方法体
    return 返回值;
    }
    例如:
public int add(int a, int b) {return a + b;
}
  1. 调用方法:可以在同一个类或者其他类中调用方法。如果是在同一个类中,直接使用方法名(参数)的形式;如果是在其他类中,需要先创建对象(对于非静态方法),然后通过对象调用方法。例如:int sum = add(3, 5);或者MyClass myObject = new MyClass(); int result = myObject.add(2, 4);。

2.8 类和对象(Classes and Objects)

  1. 类的定义:
    访问修饰符 class 类名 {
    // 成员变量
    // 成员方法
    }
    例如:
public class Person {private String name;private int age;public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public int getAge() {return age;}
}
  1. 对象的创建和使用:通过new关键字创建对象,如Person person = new Person("Andy ", 30);,然后可以通过对象访问类中的成员变量和成员方法,如System.out.println(person.getName());。

2.9 包(Packages)

  1. 定义:包用于组织和管理 Java 类,避免类名冲突。
  2. 声明包:在 Java 源文件的开头使用package语句声明包,例如package com.andy.myapp;。
  3. 导入包中的类:使用import语句导入其他包中的类,以便在当前类中使用。例如,import java.util.ArrayList;可以导入ArrayList类,这样就可以在代码中使用ArrayList来创建对象和调用方法。

码字不易,宝贵经验分享不易,请各位支持原创,转载注明出处,多多关注作者,家人们的点赞和关注是我笔耕不辍的动力。

http://www.lryc.cn/news/483951.html

相关文章:

  • 使用 npm 安装 Yarn
  • vue3中利用路由信息渲染菜单栏
  • Mysql每日一题(行程与用户,困难※)
  • adb 命令 查找启动的包名以及导出安装包
  • Flink_DataStreamAPI_输出算子Sink
  • 标准C++ 字符串
  • 时序预测:多头注意力+宽度学习
  • day06(单片机)IIC+STH20
  • Bugku CTF_Web——文件上传
  • C#版使用融合通信API发送手机短信息
  • 人工智能:重塑医疗、企业与生活的未来知识管理——以HelpLook为例
  • MVVM(Model-View-ViewModel)模型
  • 权限系统:权限应用服务设计
  • Android音频架构
  • AI 智享直播:开启直播新篇,引领未来互动新趋势!
  • 【AIGC】国内AI工具复现GPTs效果详解
  • Charles抓https包-配置系统证书(雷电)
  • 在卷积神经网络中真正占用内存的是什么
  • 2024 ECCV | DualDn: 通过可微ISP进行双域去噪
  • Elasticsearch 和 Kibana 8.16:Kibana 获得上下文和 BBQ 速度并节省开支!
  • Linux 抓包工具 --- tcpdump
  • Vector Optimization – Stride
  • git config是做什么的?
  • 计算机网络(7) 数据链路层
  • 2024年秋国开电大《建筑结构试验》形考任务1-4
  • 【MySQL】explain之type类型
  • Llama架构及代码详解
  • Android onConfigurationChanged 基础配置
  • 3. Sharding-Jdbc核⼼流 程+多种分⽚策略
  • 为什么财富的蓝图如此重要