Java基础语法详解

Java基础语法详解

  Java是一种面向对象的编程语言,具有简单、可移植、安全等特性。

1. Java程序基本结构

  一个最简单的Java程序结构如下:

// 定义类
public class HelloWorld {
    // 主方法,程序入口
    public static void main(String[] args) {
        // 输出语句
        System.out.println("Hello, World!");
    }
}
  • public class HelloWorld:定义一个公开类,类名必须与文件名一致(HelloWorld.java)
  • public static void main(String[] args):主方法,Java程序的入口点
  • System.out.println():标准输出语句

2. 基本语法规则

  • 大小写敏感:Java区分大小写,Hellohello是不同的标识符
  • 类名:首字母大写,采用驼峰命名法,如MyFirstClass
  • 方法名:首字母小写,驼峰命名法,如myMethodName()
  • 源文件名:必须与public类名相同,扩展名为.java
  • 主方法public static void main(String[] args)是Java程序的固定入口点

3. 注释

  Java支持三种注释方式:

// 单行注释

/*
多行注释
可以跨越多行
*/

/**
 * 文档注释
 * 用于生成API文档
 */

4. 变量与数据类型

4.1 基本数据类型

 Java有8种基本数据类型:

类型关键字大小范围/示例
字节型byte1字节-128 到 127
短整型short2字节-32,768 到 32,767
整型int4字节-2^31 到 2^31-1
长整型long8字节-2^63 到 2^63-1
单精度float4字节3.4e-038 到 3.4e+038
双精度double8字节1.7e-308 到 1.7e+308
字符型char2字节Unicode字符,如’A’
布尔型boolean1位true 或 false

4.2 变量声明与初始化

// 声明变量
int age;
double salary;
char grade;

// 初始化变量
age = 25;
salary = 50000.50;
grade = 'A';

// 声明并初始化
String name = "John Doe";
boolean isActive = true;

4.3常量

  使用final关键字声明常量:

final double PI = 3.14159;
final int MAX_VALUE = 100;

5. 运算符

5.1 算术运算符

int a = 10, b = 20;
int sum = a + b;  // 加法
int diff = a - b; // 减法
int product = a * b; // 乘法
int quotient = b / a; // 除法
int remainder = b % a; // 取模

5.2 关系运算符

boolean isEqual = (a == b); // 等于
boolean notEqual = (a != b); // 不等于
boolean greater = (a > b);  // 大于
boolean less = (a < b);     // 小于

5.3 逻辑运算符

boolean andResult = (true && false); // 逻辑与
boolean orResult = (true || false);  // 逻辑或
boolean notResult = !true;           // 逻辑非

5.4 赋值运算符

int x = 10;
x += 5;  // 等同于 x = x + 5
x -= 3;  // 等同于 x = x - 3
x *= 2;  // 等同于 x = x * 2

6. 控制流语句

6.1 条件语句

  if-else语句

int score = 85;

if (score >= 90) {
    System.out.println("优秀");
} else if (score >= 80) {
    System.out.println("良好");
} else if (score >= 60) {
    System.out.println("及格");
} else {
    System.out.println("不及格");
}

  switch语句

int day = 3;
String dayName;

switch (day) {
    case 1:
        dayName = "星期一";
        break;
    case 2:
        dayName = "星期二";
        break;
    // ...其他case
    default:
        dayName = "无效天数";
}

6.2 循环语句

  for循环

for (int i = 0; i < 10; i++) {
    System.out.println(i);
}

  while循环

int count = 0;
while (count < 5) {
    System.out.println(count);
    count++;
}

  do-while循环

int num = 1;
do {
    System.out.println(num);
    num++;
} while (num <= 5);

6.3 跳转语句

// break语句
for (int i = 0; i < 10; i++) {
    if (i == 5) {
        break; // 跳出循环
    }
    System.out.println(i);
}

// continue语句
for (int i = 0; i < 10; i++) {
    if (i % 2 == 0) {
        continue; // 跳过本次循环
    }
    System.out.println(i);
}

7. 数组

7.1 一维数组

// 声明数组
int[] numbers;

// 初始化数组
numbers = new int[5]; // 大小为5的数组

// 声明并初始化
int[] primes = {2, 3, 5, 7, 11};

// 访问数组元素
System.out.println(primes[0]); // 输出2

// 遍历数组
for (int i = 0; i < primes.length; i++) {
    System.out.println(primes[i]);
}

// 增强for循环
for (int prime : primes) {
    System.out.println(prime);
}

7.2 多维数组

// 二维数组
int[][] matrix = new int[3][3];

// 初始化二维数组
int[][] grid = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};

// 访问二维数组元素
System.out.println(grid[1][2]); // 输出6

8. 方法(函数)

8.1 方法定义

// 无返回值方法
public static void greet(String name) {
    System.out.println("Hello, " + name + "!");
}

// 有返回值方法
public static int add(int a, int b) {
    return a + b;
}

// 方法重载
public static double add(double a, double b) {
    return a + b;
}

8.2 方法调用

greet("Alice"); // 调用无返回值方法
int sum = add(5, 3); // 调用有返回值方法
double result = add(2.5, 3.7); // 调用重载方法

9. 面向对象基础

9.1 类与对象

// 定义类
public class Person {
    // 字段(属性)
    String name;
    int age;
    
    // 方法
    public void introduce() {
        System.out.println("我叫" + name + ",今年" + age + "岁。");
    }
}

// 创建对象
Person person1 = new Person();
person1.name = "张三";
person1.age = 25;
person1.introduce();

9.2 构造方法

public class Person {
    String name;
    int age;
    
    // 构造方法
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    // 方法...
}

// 使用构造方法创建对象
Person person2 = new Person("李四", 30);

9.3 封装

public class BankAccount {
    private double balance; // 私有字段
    
    // 公有方法访问私有字段
    public double getBalance() {
        return balance;
    }
    
    public void deposit(double amount) {
        if (amount > 0) {
            balance += amount;
        }
    }
    
    public void withdraw(double amount) {
        if (amount > 0 && amount <= balance) {
            balance -= amount;
        }
    }
}

10. 字符串处理

  Java中的字符串是String类的对象:

// 字符串创建
String str1 = "Hello";
String str2 = new String("World");

// 字符串连接
String greeting = str1 + " " + str2;

// 字符串长度
int len = greeting.length();

// 字符串比较
boolean isEqual = str1.equals("Hello"); // 推荐
boolean isSame = (str1 == "Hello"); // 不推荐,比较引用

// 常用方法
String sub = greeting.substring(0, 5); // 子串
String upper = greeting.toUpperCase(); // 转大写
String trimmed = "  hello  ".trim(); // 去空格

11. 输入输出

11.1 标准输入输出

import java.util.Scanner;

public class InputExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.print("请输入您的名字: ");
        String name = scanner.nextLine();
        
        System.out.print("请输入您的年龄: ");
        int age = scanner.nextInt();
        
        System.out.println("你好," + name + "! 你今年" + age + "岁。");
        
        scanner.close();
    }
}

11.2 格式化输出

double pi = Math.PI;
System.out.printf("PI的值是: %.2f%n", pi); // 输出: PI的值是: 3.14

int number = 123;
System.out.printf("十进制: %d, 八进制: %o, 十六进制: %x%n", number, number, number);

12. 异常处理

try {
    // 可能抛出异常的代码
    int result = 10 / 0;
} catch (ArithmeticException e) {
    // 处理特定异常
    System.out.println("除数不能为零");
} catch (Exception e) {
    // 处理其他异常
    System.out.println("发生错误: " + e.getMessage());
} finally {
    // 无论是否发生异常都会执行的代码
    System.out.println("执行完成");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值