Java——类和对象

一、类和对象的基本概念

在Java中,类是面向对象编程的基础构造块。类可以看作是一个模板或蓝图,用于创建对象。类定义了对象的属性和行为。

1、类的组成要素

  1. 字段(Field):也称为成员变量,用于存储对象的状态

  2. 方法(Method):定义对象的行为或功能

  3. 构造器(Constructor):用于创建和初始化对象

  4. 代码块:用于初始化字段

  5. 内部类:在类中定义的类

2、对象的特性

  • 状态:由对象的属性值表示

  • 行为:通过方法实现

  • 标识:每个对象在内存中有唯一的地址

3、类的定义语法

java 复制代码
[访问修饰符] class 类名 {
    // 字段声明
    [访问修饰符] 数据类型 字段名;
    
    // 构造器定义
    [访问修饰符] 类名(参数列表) {
        // 构造器体
    }
    
    // 方法定义
    [访问修饰符] 返回类型 方法名(参数列表) {
        // 方法体
    }
}

二、对象的创建和使用

1、创建对象

在Java中创建对象需要三个步骤:

  1. 声明:声明一个对象引用变量

  2. 实例化 :使用new关键字创建对象

  3. 初始化:调用构造器初始化对象

java 复制代码
// 声明对象引用
ClassName objectName;

// 实例化对象
objectName = new ClassName();

// 也可以合并为一步
ClassName objectName = new ClassName();

2、访问对象成员

使用点号(.)操作符访问对象的成员:

java 复制代码
// 访问字段
objectName.fieldName = value;

// 调用方法
objectName.methodName(arguments);

三、方法

方法是类中定义的行为或功能。

1、方法定义包含内容

  • 访问修饰符(如public、private)

  • 返回类型(如void表示无返回值)

  • 方法名

  • 参数列表(可选)

  • 方法体

2、方法示例

java 复制代码
public class Calculator {
    // 加法方法
    public int add(int a, int b) {
        return a + b;
    }
    
    // 方法重载 - 处理三个数相加
    public int add(int a, int b, int c) {
        return a + b + c;
    }
    
    // 无返回值方法
    public void printResult(int result) {
        System.out.println("结果是: " + result);
    }
}

3、访问控制修饰符

Java提供了四种访问修饰符来控制对类、字段、方法和构造器的访问权限。

  1. public:对所有类可见

  2. protected:对同一包内的类和所有子类可见

  3. default(无修饰符):对同一包内的类可见

  4. private:仅对当前类可见

|------------|-----|----|----|-----|
| | 当前类 | 同包 | 子类 | 其他包 |
| public | √ | √ | √ | √ |
| protected | √ | √ | √ | × |
| default/不写 | √ | √ | × | × |
| private | √ | × | × | × |

四、构造器

构造器是类的一种特殊方法,用于初始化新创建的对象。

1、构造器的主要特点

  • 与类同名

  • 没有返回类型(连void也没有)

  • 可以有参数

  • 可以重载(定义多个不同参数的构造器)

2、构造器示例

java 复制代码
public class Person {
    private String name;
    private int age;
    
    // 无参构造器
    public Person() {
        this.name = "Unknown";
        this.age = 0;
    }
    
    // 带两个参数的构造器
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    // 方法省略...
}

五、静态成员

使用**static**关键字修饰的成员属于类而非对象

  • 静态变量:类的所有实例共享

  • 静态方法:可以直接通过类名调用,不能访问非静态成员

1、静态变量

静态变量(静态字段)是类级别的变量。

静态变量特点:

  1. 使用static关键字修饰

  2. 存储在内存的静态区

  3. 在类加载时初始化

  4. 可以通过类名直接访问,也可以通过实例访问(但不推荐)

  5. 常用于存储类级别的共享数据

java 复制代码
public class Counter {
    // 静态字段
    private static int count = 0;
    
    public Counter() {
        count++;
    }
    
    public static int getCount() {
        return count;
    }
}

2、静态方法

静态方法特点:

  1. 使用static关键字修饰

  2. 可以直接通过类名调用

  3. 不能直接访问非静态成员(必须通过对象实例访问)

  4. 不能使用thissuper关键字

  5. 常用于工具类方法

3、注意事项

  1. 静态成员的生命周期与类相同,从类加载到JVM卸载

  2. 过多使用静态成员可能导致内存泄漏

  3. 静态方法不能被重写(但可以隐藏)

  4. 静态成员在多线程环境下需要考虑线程安全问题

4、静态成员示例

java 复制代码
public class Employee {
    private int id;
    private String name;
    
    // 静态变量 - 记录员工总数
    private static int count = 0;
    
    public Employee(String name) {
        this.id = ++count;
        this.name = name;
    }
    
    // 静态方法
    public static int getEmployeeCount() {
        return count;
    }
    
    // 其他方法...
}

// 使用静态方法
int total = Employee.getEmployeeCount();
相关推荐
JIngJaneIL3 小时前
篮球论坛|基于SprinBoot+vue的篮球论坛系统(源码+数据库+文档)
java·前端·数据库·vue.js·论文·毕设·篮球论坛系统
毕设源码-赖学姐4 小时前
【开题答辩全过程】以 安卓的服装销售APP为例,包含答辩的问题和答案
java·eclipse·tomcat
沐知全栈开发4 小时前
Python3 集合
开发语言
青云交5 小时前
Java 大视界 -- Java 大数据在智能农业温室环境调控与作物生长模型构建中的应用
java·机器学习·传感器技术·数据处理·作物生长模型·智能农业·温室环境调控
曾经的三心草5 小时前
SpringAI5-智能聊天机器⼈
java·springai
微露清风5 小时前
系统性学习C++-第八讲-vector类
java·c++·学习
Jonathan Star5 小时前
用Python轻松提取视频音频并去除静音片段
开发语言·python·音视频
Evand J5 小时前
【自适应粒子滤波MATLAB例程】Sage Husa自适应粒子滤波,用于克服初始Q和R不准确的问题,一维非线性滤波。附下载链接
开发语言·matlab·卡尔曼滤波·自适应滤波·非线性
roykingw5 小时前
【思想比实现更重要】高并发场景下如何保证接口幂等性
java·web安全·面试