Java基础语法

Java 基础语法

在 Java 编程世界里,一个 Java 程序可以看作是一系列对象的集合,这些对象通过相互调用彼此的方法来协同工作,共同完成各种复杂的任务。接下来,让我们一起深入了解类、对象、方法和实例变量的基本概念。

  • 对象:对象是类的一个具体实例,它拥有自己独特的状态和行为。以狗为例,一条狗就是一个对象,它的状态可以包括颜色、名字、品种等属性;而它的行为则有摇尾巴、叫、吃等动作。
  • :类就像是一个模板,它详细描述了一类对象所共有的行为和状态。通过这个模板,我们可以创建出一个个具体的对象。
  • 方法:方法代表着对象的行为,一个类中可以包含多个方法。无论是复杂的逻辑运算、数据的修改操作,还是其他各种动作,都是在方法中完成的。
  • 实例变量:每个对象都有属于自己的独特实例变量,这些实例变量的值共同决定了对象的状态。

第一个 Java 程序

让我们先来看一个简单的 Java 程序,它的功能是输出字符串 “Hello World”。这个经典的程序就像是编程世界的 “敲门砖”,引领我们开启 Java 编程之旅。

实例:

public class HelloWorld {
    /* 第一个Java程序
     * 它将输出字符串 Hello World
     */
    public static void main(String[] args) {
        System.out.println("Hello World"); // 输出 Hello World
    }
}

接下来,我们逐步介绍如何保存、编译以及运行这个程序:

  1. 打开代码编辑器,将上述代码完整地添加进去。
  2. 把文件名保存为 “HelloWorld.java”,请务必注意文件名要和类名完全一致,并且 Java 是大小写敏感的。
  3. 打开 cmd 命令窗口,通过命令进入目标文件所在的位置,假设文件存放在 C 盘根目录下。
  4. 在命令行窗口中输入 “javac HelloWorld.java”,然后按下回车键开始编译代码。如果代码没有任何错误,并且环境变量都已正确设置,cmd 命令提示符会自动进入下一行。
  5. 编译成功后,再输入 “java HelloWorld” 并按下回车键,就可以运行程序了。此时,你将会在窗口中看到输出的 “Hello World”。
$ javac HelloWorld.java
$ java HelloWorld 
Hello World

倘若在编译过程中遇到编码问题,我们可以使用-encoding选项将编码设置为utf-8来进行编译,具体命令如下:

javac -encoding UTF-8 HelloWorld.java 
java HelloWorld 

基本语法

在编写 Java 程序时,有一些关键的要点需要我们时刻牢记:

  • 大小写敏感:Java 对大小写非常敏感,这就意味着标识符 “Hello” 与 “hello” 是完全不同的,在编程过程中一定要严格区分。
  • 类名:对于所有的类来说,类名的首字母通常应该大写。如果类名由多个单词组成,那么每个单词的首字母都应该大写,例如 “MyFirstJavaClass” ,这样的命名规范有助于提高代码的可读性。
  • 方法名:所有的方法名都应该以小写字母开头。当方法名包含多个单词时,后面的每个单词首字母大写,例如 “calculateSum” ,遵循这样的命名规则可以使代码结构更加清晰。
  • 源文件名:源文件名必须和类名完全相同。在保存文件时,一定要使用类名作为文件名,并加上后缀 “.java”。如果文件名和类名不一致,将会导致编译错误,所以这一点务必注意。
  • 主方法入口:所有的 Java 程序都是从public static void main(String[] args)方法开始执行的,这个方法就像是程序的 “起点”,程序从这里开始一步步执行各种操作。

Java 标识符

在 Java 中,所有的组成部分都需要有自己的名字,类名、变量名以及方法名都被称为标识符。关于 Java 标识符,有以下几个重要的规则需要我们遵守:

  • 所有的标识符都应该以字母(A-Z 或者 a-z)、美元符($)或者下划线(_)开始。
  • 首字符之后可以是字母(A-Z 或者 a-z)、美元符($)、下划线(_)或数字的任意字符组合。
  • 关键字不能用作标识符,因为关键字在 Java 中有特殊的含义和用途。
  • 标识符是大小写敏感的,例如 “myVariable” 和 “myvariable” 是两个不同的标识符。
  • 合法标识符举例:age、$salary、_value、__1_value 。
  • 非法标识符举例:123abc、-salary ,这些不符合标识符命名规则,在编程中要避免使用。

Java 修饰符

和其他编程语言类似,Java 可以使用修饰符来修饰类中的方法和属性,从而实现更灵活的编程控制。Java 中的修饰符主要分为两类:

  • 访问控制修饰符:包括 default、public、protected、private 。这些修饰符用于控制类、方法和变量的访问权限,决定了它们在不同的作用域中是否可见和可访问。
  • 非访问控制修饰符:例如 final、abstract、static、synchronized 。这些修饰符为方法和属性赋予了不同的特性,比如 final 可以用于修饰不可变的常量,abstract 用于定义抽象类和抽象方法等。

在后续的学习中,我们会深入探讨 Java 修饰符的具体用法和应用场景,它们将帮助我们编写出更加健壮和安全的代码。

Java 变量

在 Java 中,主要有以下几种类型的变量:

  • 局部变量:局部变量是在方法内部声明的变量,它的作用域仅限于方法内部,只在方法执行期间存在。
  • 类变量(静态变量):类变量是使用 static 关键字修饰的变量,它属于类本身,而不是类的某个实例。无论创建多少个类的实例,类变量都只有一份,并且可以通过类名直接访问。
  • 成员变量(非静态变量):成员变量是在类中声明,但在方法外部的变量,它属于类的每个实例。每个实例都有自己独立的成员变量副本,通过实例对象可以访问和修改成员变量的值。

Java 数组

数组是一种在 Java 中广泛使用的数据结构,它用于存储多个同类型的变量。数组中的元素在内存中是连续存储的,这使得对数组元素的访问和操作更加高效。数组在 Java 中是作为对象来处理的,它存储在堆内存中。在后续的学习中,我们将详细学习如何声明、构造以及初始化一个数组,掌握数组的使用方法对于编写高效的 Java 程序至关重要。

Java 枚举

Java 5.0 引入了枚举这一强大的特性,枚举可以将变量的取值限制为预先设定好的几个值。通过使用枚举,我们可以有效地减少代码中的潜在错误,提高代码的可读性和可维护性。

例如,我们为一家果汁店设计一个程序,为了规范果汁的售卖尺寸,我们可以使用枚举来限制果汁的尺寸只能是小杯、中杯、大杯。这样一来,就避免了顾客点单时出现不符合规定尺寸的情况,确保了程序的准确性和稳定性。

实例:

class FreshJuice {
   enum FreshJuiceSize{ SMALL, MEDIUM, LARGE }
   FreshJuiceSize size;
}
 
public class FreshJuiceTest {
   public static void main(String[] args){
      FreshJuice juice = new FreshJuice();
      juice.size = FreshJuice.FreshJuiceSize.MEDIUM  ;
   }
}

**注意:**枚举可以单独声明,也可以声明在类里面。在枚举中,我们还可以定义方法、变量和构造函数,进一步丰富了枚举的功能和应用场景。

Java 关键字

在这里插入图片描述

Java 关键字是 Java 语言中预先定义好的具有特殊含义的单词,这些保留字不能用于常量、变量和任何标识符的名称。下面我们通过一个表格来详细列出 Java 关键字及其说明:

类别关键字说明
访问控制private私有的
protected受保护的
public公共的
default默认
类、方法和变量修饰符abstract声明抽象
class
extends扩充、继承
final最终值、不可改变的
implements实现(接口)
interface接口
native本地、原生方法(非 Java 实现)
new创建
static静态
strictfp严格浮点、精准浮点
synchronized线程、同步
transient短暂
volatile易失
程序控制语句break跳出循环
case定义一个值以供 switch 选择
continue继续
do运行
else否则
for循环
if如果
instanceof实例
return返回
switch根据值选择执行
while循环
错误处理assert断言表达式是否为真
catch捕捉异常
finally有没有异常都执行
throw抛出一个异常对象
throws声明一个异常可能被抛出
try捕获异常
包相关import引入
package
基本类型boolean布尔型
byte字节型
char字符型
double双精度浮点
float单精度浮点
int整型
long长整型
short短整型
变量引用super父类、超类
this本类
void无返回值
保留关键字goto是关键字,但不能使用
const是关键字,但不能使用

**注意:**Java 的 null 不是关键字,它类似于 true 和 false,是一个字面常量,用于表示空值,并且不允许作为标识符使用。在编程中,我们经常会使用 null 来初始化对象引用,表示该引用不指向任何对象。

Java 注释

和 C/C++ 语言一样,Java 也支持单行注释和多行注释。注释的作用是为代码添加说明和解释,提高代码的可读性和可维护性。注释中的字符会被 Java 编译器忽略,不会影响程序的运行。

public class HelloWorld {
   /* 这是第一个Java程序
    * 它将输出 Hello World
    * 这是一个多行注释的示例
    */
    public static void main(String[] args){
       // 这是单行注释的示例
       /* 这个也是单行注释的示例 */
       System.out.println("Hello World"); 
    }
}

如果想深入了解更多关于 Java 注释的内容,可以参考:Java 注释 。在实际编程中,合理地使用注释可以让代码更加清晰易懂,方便自己和他人阅读和维护代码。

Java 空行

在 Java 程序中,空白行或者包含注释的行,Java 编译器都会自动忽略掉。虽然空行在程序运行时没有实际的作用,但它可以用于分隔代码块,使代码结构更加清晰,提高代码的可读性。在编写代码时,我们可以适当地使用空行来组织代码,让代码看起来更加整洁和有条理。

继承

在 Java 中,一个类可以从其他类派生而来。当我们创建一个新类时,如果已经存在一个类具有我们所需要的属性或方法,那么我们可以让新类继承这个已有的类。通过继承,我们可以重用已存在类的方法和属性,避免重复编写代码,大大提高了开发效率。

在继承关系中,被继承的类称为超类(super class),也叫做父类;派生出来的类称为子类(sub class),也叫做派生类。子类可以继承父类的非私有属性和方法,并且还可以根据自身需求添加新的属性和方法,或者重写父类的方法,实现更加个性化的功能。

接口

在 Java 中,接口可以理解为对象之间相互通信的协议。接口在 Java 的继承体系中扮演着非常重要的角色,它为类提供了一种更加灵活的多继承方式。

接口只定义了方法的签名,也就是方法的名称、参数列表和返回类型,但不包含方法的具体实现。接口的实现完全由实现该接口的类来完成,这使得不同的类可以根据自身的需求来实现接口中定义的方法,从而实现不同的功能。通过接口,我们可以将不同类的共同行为抽象出来,提高代码的可扩展性和可维护性。

Java 源程序与编译型运行区别

Java 源程序是我们编写的包含 Java 代码的文本文件,通常以.java 为后缀。在运行 Java 程序之前,需要先使用 Java 编译器(javac)将源程序编译成字节码文件,字节码文件以.class 为后缀。字节码文件是一种中间形式的代码,它不能直接在操作系统上运行,而是需要在 Java 虚拟机(JVM)中运行。

Java 虚拟机负责加载字节码文件,并将字节码解释或编译成机器码,然后在不同的操作系统上运行。这种编译型和解释型相结合的运行方式,使得 Java 程序具有 “一次编写,到处运行” 的特性,即 Java 程序可以在不同的操作系统和硬件平台上运行,而无需重新编写代码。

如下图所示,清晰地展示了 Java 源程序从编写到编译、运行的整个过程:

在这里插入图片描述

通过对 Java 基础语法的学习,我们对 Java 编程有了初步的认识。这些基础知识是我们进一步学习 Java 的基石,只有扎实掌握了这些内容,才能在后续的学习和实践中更加得心应手。在未来的学习中,我们还将深入探讨 Java 的各种高级特性和应用场景,不断提升自己的编程能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值