一文精通Java基础:从环境搭建到面向对象实践

一、为什么选择Java?


Java是一门跨平台、面向对象的编程语言,被广泛应用于企业级开发、安卓应用、大数据处理等领域。它最大的特点是“一次编写,到处运行”,只需要编写一次代码,就能在不同操作系统(Windows、Linux、Mac)上运行。这种特性使得Java开发者无需为不同平台单独编写代码,大大提高了开发效率,也让Java在全球拥有庞大的开发者社区和丰富的技术资源。

二、Java环境搭建

1. 下载JDK

JDK(Java Development Kit)是Java开发的核心工具包,包含了编译和运行Java程序所需的工具。你可以从以下地址下载:
- Oracle JDK官方下载
- OpenJDK下载


2. 安装JDK

下载完成后,双击安装文件,按照提示完成安装。安装过程中记住JDK的安装路径(例如: C:\Program Files\Java\jdk-17  )。


3. 配置环境变量

Windows:
1. 右键点击“此电脑”,选择“属性”→“高级系统设置”→“环境变量”。
2. 在“系统变量”中,新建变量  JAVA_HOME ,值为JDK的安装路径(如  C:\Program Files\Java\jdk-17  )。
3. 在“系统变量”的  Path  中,新建一个变量值  %JAVA_HOME%\bin  。
- Mac/Linux:
1. 打开终端,编辑  .bashrc  或  .zshrc  文件(例如: vi ~/.bashrc  )。
2. 添加以下内容:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH
3. 保存文件后,执行  source ~/.bashrc  使配置生效。 
4. 验证安装
打开命令行,输入  java -version  和  javac -version ,如果显示JDK版本信息,说明安装成功!


三、第一个Java程序:Hello World

使用记事本或VS Code等编辑器,创建一个名为  HelloWorld.java  的文件,输入以下代码: 

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

代码解析:
-  public class HelloWorld :定义一个公共类,类名必须与文件名相同(包括大小写)。
-  public static void main(String[] args) :Java程序的入口方法,程序从这里开始执行。
-  System.out.println("Hello, World!"); :在控制台打印一行文字。

编译和运行:
1. 打开命令行,进入  HelloWorld.java  所在的文件夹。
2. 执行  javac HelloWorld.java ,如果没有报错,会生成一个  HelloWorld.class  文件。
3. 执行  java HelloWorld ,即可在控制台看到输出  Hello, World!  。


四、Java基础语法
 

1. 数据类型


Java的数据类型分为基本数据类型和引用数据类型:

- 基本数据类型:

整数类型:byte(1 字节 )、short(2 字节 )、int(4 字节 )、long(8 字节 ),如 int age = 20; 存储整数数据 。

浮点类型:float(4 字节 )、double(8 字节 ),用于表示小数,像 double price = 9.99; 。

字符类型:char(2 字节 ),存储单个字符,例如 char gender = 'M'; 。 

布尔类型:boolean,取值 true 或 false,用于条件判断,如 boolean isStudent = true; 。


- 引用数据类型:包括类、接口、数组等,例如  String str = "Hello";  。


2. 变量和常量


- 变量:存储数据的容器,例如: int score = 90; 
- 常量:值不可改变,使用  final  关键字定义,例如: final double PI = 3.14159; 


3. 运算符


- 算术运算符: + 、 - 、 * 、 / 、 % (取余)
- 关系运算符: > 、 < 、 == 、 != 
- 逻辑运算符: && (与)、 || (或)、 ! (非) 


4. 流程控制


- 条件语句:

 if-else  和  switch  
int num = 10;
if (num > 5) {
    System.out.println("大于5");
} else {
    System.out.println("小于等于5");
} 

- 循环语句:

for 、 while 、 do-while 
for (int i = 1; i <= 10; i++) {
    System.out.println(i);
}


五、面向对象编程基础


1. 类和对象


- 类:是对象的模板,包含属性和方法。例如:

class Person {
    String name;
    int age;

    void sayHello() {
        System.out.println("Hello, my name is " + name);
    }
}

- 对象:类的实例,例如:

Person person = new Person();
person.name = "Alice";
person.sayHello();

2. 封装

通过  private  关键字隐藏类的属性,使用  public  方法访问和修改属性,例如:

class Student {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

六、数组
 

数组是一种用于存储相同数据类型元素的容器,它在内存中是一段连续的空间。
 

1. 数组的声明与初始化

- 静态初始化:在声明时直接指定元素值

int[] numbers = {1, 2, 3, 4, 5};

- 动态初始化:先指定数组长度,再赋值

String[] names = new String[3];
names[0] = "Alice";
names[1] = "Bob";
names[2] = "Charlie";

2. 多维数组

Java支持多维数组,以二维数组为例:

int[][] matrix = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};

可以通过  matrix[row][col]  的方式访问元素,例如  matrix[0][1]  的值为2。
 

七、类的继承
 

继承是面向对象编程的重要特性,它允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的复用。

1. 继承的语法

使用  extends  关键字实现继承:

class Animal {
    protected String name;
    public Animal(String name) {
        this.name = name;
    }
    public void eat() {
        System.out.println(name + " is eating.");
    }
}

class Dog extends Animal {
    public Dog(String name) {
        super(name);
    }
    public void bark() {
        System.out.println(name + " is barking.");
    }
}

在子类的构造方法中,通过  super  关键字调用父类的构造方法。

2. 方法重写

子类可以重写父类的方法,需要满足方法签名(方法名、参数列表、返回类型)相同:

class Cat extends Animal {
    public Cat(String name) {
        super(name);
    }
    @Override
    public void eat() {
        System.out.println(name + " is eating fish.");
    }
}

@Override  注解用于确保方法重写的正确性,如果方法签名不匹配,编译器会报错。
 

八、抽象类与接口
 

1. 抽象类

抽象类不能被实例化,它存在的意义是为子类提供一个通用的模板。抽象类中可以包含抽象方法(只有声明,没有实现)和具体方法。例子:

abstract class Shape {
    protected String color;
    public Shape(String color) {
        this.color = color;
    }
    public abstract double getArea();
    public void displayColor() {
        System.out.println("Color: " + color);
    }
}

class Circle extends Shape {
    private double radius;
    public Circle(String color, double radius) {
        super(color);
        this.radius = radius;
    }
    @Override
    public double getArea() {
        return Math.PI * radius * radius;
    }
}

2. 接口

接口是一种特殊的抽象类型,其中的方法默认是  public abstract ,属性默认是  public static final 。接口用于实现多继承的效果,一个类可以实现多个接口。

interface Flyable {
    void fly();
}

class Bird implements Flyable {
    @Override
    public void fly() {
        System.out.println("Bird is flying.");
    }
}

九、ArrayList集合
 

ArrayList 是Java中最常用的动态数组,它可以自动调整大小,方便地添加、删除和访问元素

import java.util.ArrayList;

public class ArrayListExample {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        // 添加元素
        list.add("Apple");
        list.add("Banana");
        // 获取元素
        String element = list.get(0);
        // 修改元素
        list.set(1, "Cherry");
        // 删除元素
        list.remove(0);
        // 遍历集合
        for (String s : list) {
            System.out.println(s);
        }
    }
}

十、HashMap集合

HashMap 是一种键值对(key-value)存储的数据结构,用于快速查找和存储数据。

import java.util.HashMap;

public class HashMapExample {
    public static void main(String[] args) {
        HashMap<String, Integer> map = new HashMap<>();
        // 添加键值对
        map.put("Alice", 25);
        map.put("Bob", 30);
        // 获取值
        Integer age = map.get("Alice");
        // 修改值
        map.put("Bob", 31);
        // 删除键值对
        map.remove("Alice");
        // 遍历集合
        for (String key : map.keySet()) {
            System.out.println(key + ": " + map.get(key));
        }
    }
}

十一、总结

通过以上内容,你已经掌握了Java的基础入门知识,包括环境搭建、第一个程序、基本语法、面向对象编程、数组、类的继承、抽象类与接口,以及常用集合 ArrayList 和 HashMap 。这些知识是Java编程的基石,后续可以尝试编写更复杂的程序,例如计算器、学生成绩管理系统、简易图书管理系统等,在实践中加深对Java的理解。编程需要多练习,遇到问题多查资料、多思考,祝你在Java学习的道路上越走越远!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值