Java 作为一门广泛应用于企业级开发、安卓应用开发等领域的编程语言,以其跨平台性、安全性和面向对象的特性深受开发者喜爱。本文将详细介绍 Java 入门所需的基础语法知识,并深入剖析面向对象的三大特性。
一、Java 基础语法
1. 数据类型
Java 的数据类型分为基本数据类型 和引用数据类型。
- 基本数据类型:包括数值型(byte、short、int、long、float、double)、字符型(char)和布尔型(boolean)。例如,定义一个整数变量 int num = 10;,定义一个浮点数变量 double pi = 3.14159;。
- 引用数据类型:如类、接口、数组等。例如,创建一个字符串对象 String str = "Hello, Java!";,这里 String 就是引用数据类型,str 是指向字符串对象的引用。
2. 变量与常量
- 变量:在程序执行过程中其值可以改变的量。变量使用前必须先声明和初始化,例如 int age; age = 25; 或直接 int age = 25;。
- 常量:在程序执行过程中其值不能改变的量,使用 final 关键字修饰。例如 final double PI = 3.14;,一旦定义,PI 的值就不能再被修改。
3. 运算符
Java 中的运算符包括算术运算符(+、-、*、/、%)、赋值运算符(=、+=、-= 等)、关系运算符(>、<、==、!= 等)、逻辑运算符(&&、||、!)等。例如:
java
int a = 10;
int b = 5;
System.out.println(a + b); // 输出15,算术加法
System.out.println(a > b); // 输出true,关系比较
System.out.println(a > 15 && b < 10); // 输出false,逻辑与运算
4. 流程控制语句
- 条件语句:包括 if-else 语句和 switch 语句。
- if-else 用于根据条件执行不同的代码块,例如:
javaint score = 85; if (score >= 90) { System.out.println("优秀"); } else if (score >= 80) { System.out.println("良好"); } else { System.out.println("一般"); }
- switch 语句则用于多分支判断,适用于离散值的判断:
javaint day = 3; switch (day) { case 1: System.out.println("星期一"); break; case 2: System.out.println("星期二"); break; case 3: System.out.println("星期三"); break; default: System.out.println("其他"); }
- 循环语句:有 for 循环、while 循环和 do-while 循环。
- for 循环常用于已知循环次数的情况,例如:
javafor (int i = 0; i < 5; i++) { System.out.println(i); }
- while 循环先判断条件,再执行循环体,例如:
javaint count = 0; while (count < 3) { System.out.println(count); count++; }
- do-while 循环则先执行一次循环体,再判断条件,保证循环体至少执行一次:
javaint num = 0; do { System.out.println(num); num++; } while (num < 2);
二、面向对象三大特性
1. 封装
封装是将数据和操作数据的方法绑定在一起,隐藏对象的内部实现细节,只对外提供公共的访问接口。在 Java 中,通过访问修饰符(private、protected、public)来实现封装。例如,定义一个 Person 类:
java
class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age >= 0) {
this.age = age;
} else {
System.out.println("年龄不能为负数");
}
}
}
在上述代码中,name 和 age 被声明为 private,外部无法直接访问,只能通过 getName、setName、getAge、setAge 这些公共方法来访问和修改,这样可以对数据进行合法性校验,保证数据的安全性和完整性。
2. 继承
继承是指一个类(子类)可以继承另一个类(父类)的属性和方法,从而实现代码的复用。在 Java 中,使用 extends 关键字实现继承。例如,定义一个 Animal 类作为父类:
java
class Animal {
protected String name;
public Animal(String name) {
this.name = name;
}
public void eat() {
System.out.println(name + "在吃东西");
}
}
再定义一个 Dog 类继承 Animal 类:
java
class Dog extends Animal {
public Dog(String name) {
super(name);
}
public void bark() {
System.out.println(name + "在汪汪叫");
}
}
在 Dog 类中,不仅拥有 Animal 类的 name 属性和 eat 方法,还可以定义自己特有的 bark 方法。继承提高了代码的复用性和可维护性,当父类的方法不能满足子类需求时,子类还可以通过方法重写来覆盖父类的方法。
3. 多态
多态是指同一个方法调用,由于对象不同会产生不同的行为。多态的实现需要满足三个条件:继承、方法重写和父类引用指向子类对象。例如,在上述 Animal 和 Dog 类的基础上,再定义一个 Cat 类:
java
class Cat extends Animal {
public Cat(String name) {
super(name);
}
@Override
public void eat() {
System.out.println(name + "在吃鱼");
}
}
Cat 类重写了 Animal 类的 eat 方法。通过父类引用指向子类对象来实现多态:
java
public class Main {
public static void main(String[] args) {
Animal animal1 = new Dog("旺财");
Animal animal2 = new Cat("咪咪");
animal1.eat(); // 输出:旺财在吃东西
animal2.eat(); // 输出:咪咪在吃鱼
}
}
这里 animal1 和 animal2 都是 Animal 类型的引用,但指向不同的子类对象,调用 eat 方法时会根据实际对象类型执行相应的方法,体现了多态性。多态使得程序的扩展性和灵活性大大增强,便于代码的维护和升级。
通过学习 Java 基础语法和面向对象的三大特性,你已经迈出了 Java 编程的重要一步。后续还可以深入学习集合框架、异常处理、多线程等知识,不断提升自己的 Java 编程能力。