Java基础

Java语言基础知识


一、Java程序结构

下面是一个简单的Java程序结构示例:


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


这个程序由一个名为HelloWorld的类组成,其中包含了一个名为main的静态方法。main方法是Java程序的入口点,程序运行时会首先执行main方法。

Java程序的基本结构包括以下几个部分:

包声明(Package Declarations):在Java程序的顶部,可以声明程序所在的包。例如,package com.example.myapp;
导入声明(Import Declarations):在包声明之后,可以导入需要的类或者包。例如,import java.util.*;
类声明(Class Declarations):Java程序从主类开始执行,主类通常是包含main方法的类。例如:

public class MainClass {
    public static void main(String[] args) {
        // main method code goes here
    }
}


在上述代码中,public class MainClass是类声明,public static void main(String[] args)是主方法。

变量和方法声明(Variable and Method Declarations):在类体中可以声明变量和方法。例如:

public class MainClass {
    int num;  // variable declaration
    public void printNum() {  // method declaration
        System.out.println(num);
    }
}

主方法(Main Method):Java程序的执行从主方法开始。主方法必须是public static void,并且接受一个字符串数组作为参数。例如:

public static void main(String[] args) {
    // main method code goes here
}

程序体(Program Body):程序体包含在主方法中执行的代码。例如:

public static void main(String[] args) {
    System.out.println("Hello, World!");  // program body code goes here
}

结束语句(Ending Statement):在主方法结束之后,Java程序结束。
注释(Comments):在Java程序中可以添加注释来解释代码。单行注释以//开始,多行注释以/*开始并以*/结束。


二、Java数据类型

下面是一个简单的Java数据类型示例:


int a = 10; // 基本数据类型
String b = "Hello, World!"; // 引用数据类型
数据类型是编程语言中用来定义变量或函数的数据结构和存储方式。在Java中,数据类型分为基本数据类型和引用数据类型。

基本数据类型包括整数型(byte、short、int、long)、浮点型(float、double)、布尔型(boolean)和字符型(char)。这些类型用于存储基本数据,如整数、浮点数、布尔值和字符。

整数型:整数型数据可以用于存储整数值,如byte(-128到127)、short(-32768到32767)、int(-2147483648到2147483647)、long(-9223372036854775808到9223372036854775808)。

浮点型:浮点型数据可以用于存储带有小数点的数值,如float(3.4E-38到3.4E+38)、double(1.7E-308到1.7E+308)。

布尔型:布尔型数据可以用于存储真或假的值,即true或false。

字符型:字符型数据可以用于存储字符,如'a'、'b'、'c'等。

引用数据类型包括类、接口和数组。这些类型用于存储对象的引用,可以用来创建更复杂的数据结构。

类:类是一种自定义的数据类型,它允许你定义一组属性和方法来创建一个对象。类中的属性和方法一起构成了对象的状态和行为。

接口:接口是一种引用类型,它定义了一组抽象方法,这些方法可以被实现类继承和实现。接口常用于定义对象的行为。

数组:数组是一种引用类型,它允许你存储多个同类型的元素。数组在Java中是特殊的对象,可以用来存储固定大小的同类型数据。

以上是Java中关于数据类型的详细解释。理解数据类型是编程的基础,可以帮助你更好地理解程序中数据的存储和操作方式。

这里使用了整数类型int和字符串类型String。在Java中,基本数据类型和引用数据类型是不同的,基本数据类型直接存储值,而引用数据类型存储的是对象的引用。

三、Java运算符

下面是一个简单的Java运算符示例:


int x = 10;
int y = 5;
int sum = x + y; // 算术运算符
boolean isEqual = x == y; // 比较运算符


这里使用了加法运算符和比较运算符。算术运算符包括加法、减法、乘法、除法和取模等;比较运算符包括等于、不等于、大于、小于和大于等于等。

四、Java控制语句

下面是一个简单的Java控制语句示例:


int x = 10;
if (x > 5) { // 条件语句
    System.out.println("x is greater than 5");
} else {
    System.out.println("x is less than or equal to 5");
}
五、Java函数和方法

下面是一个简单的Java函数和方法示例:


public class Calculator {
    public int add(int a, int b) { // 方法:add
        return a + b;
    }

    public static void main(String[] args) {
        Calculator calculator = new Calculator();
        int result = calculator.add(5, 3); // 调用add方法并传入参数
        System.out.println("Result: " + result); // 输出结果
    }
}


这里我们定义了一个Calculator类,其中包含了一个名为add的方法。在main方法中,我们创建了Calculator类的实例,并调用了add方法来执行加法运算。

六、Java类和对象

下面是一个简单的Java类和对象示例:


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

public class Main {
    public static void main(String[] args) {
        Person person = new Person("John", 30); // 创建Person类的实例
        System.out.println("Name: " + person.name); // 输出对象的属性name
        System.out.println("Age: " + person.age); // 输出对象的属性age
    }
}


这里我们定义了一个Person类,其中包含了name和age两个属性,并定义了一个构造函数来初始化对象的属性。在Main类的main方法中,我们创建了Person类的实例,并输出了对象的属性name和age。

七、Java继承和多态

下面是一个简单的Java继承和多态示例:


public class Animal {
    String name;
    public Animal(String name) { // Animal类的构造函数
        this.name = name;
    }
}

public class Dog extends Animal { // Dog类继承了Animal类
    String breed;
    public Dog(String name, String breed) { // Dog类的构造函数
        super(name); // 调用父类Animal的构造函数
        this.breed = breed;
    }
}

public class Main {
    public static void main(String[] args) {
        Animal animal = new Animal("Cat"); // Animal类的实例化对象animal,实际是Cat类的实例化对象,因为Animal类是抽象类,不能实例化对象。所以这个animal变量其实是指向Cat类的实例化对象。所以这里的类型是Animal。但是因为实际对象是Cat,所以也可以调用Cat类特有的方法。这就是多态。

扫描器

以下是一个使用Java扫描器的代码块,用于查找指定目录下的所有Java文件:


import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;

public class JavaScanner {
    public static void main(String[] args) {
        String path = "C:/myproject/src/main/java"; // 替换为你要扫描的目录路径
        List<String> fileList = new ArrayList<>();
        File dir = new File(path);
        if (dir.exists()) {
            File[] files = dir.listFiles();
            if (files != null) {
                for (File file : files) {
                    if (file.isDirectory()) {
                        fileList.addAll(scanDir(file));
                    } else if (file.getName().endsWith(".java")) {
                        fileList.add(file.getAbsolutePath());
                    }
                }
            }
        } else {
            System.out.println("目录不存在:" + path);
        }
        System.out.println("找到的Java文件数量:" + fileList.size());
        for (String filePath : fileList) {
            System.out.println(filePath);
        }
    }
    
    private static List<String> scanDir(File dir) {
        List<String> fileList = new ArrayList<>();
        File[] files = dir.listFiles();
        if (files != null) {
            for (File file : files) {
                if (file.isDirectory()) {
                    fileList.addAll(scanDir(file)); // 递归扫描子目录
                } else if (file.getName().endsWith(".java")) {
                    fileList.add(file.getAbsolutePath());
                }
            }
        } else {
            System.out.println("目录不存在:" + dir.getAbsolutePath());
        }
        return fileList;
    }
}
 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值