当前位置: 首页 > article >正文

Java类

文章目录

      • 1. 类的定义
      • 2. 类的组成
        • (1) 属性(Fields)
        • (2) 方法(Methods)
      • `this` 的作用:
      • 注意事项:
        • **(3) 构造方法(Constructor)**
      • **3. 对象的创建**
      • **4. 访问修饰符**
      • **5. 类的特性**
        • **(1) 封装(Encapsulation)**
        • **(2) 继承(Inheritance)**
        • **(3) 多态(Polymorphism)**
      • **6. 类的高级特性**
        • **(1) 静态成员(Static Members)**
        • **(2) 内部类(Inner Class)**
        • **(3) 抽象类与接口**
      • **总结**


在 Java 编程中,class)是面向对象编程的核心概念。类是用于创建对象的模板,它定义了对象的属性(fields)和行为(methods)。以下是关于 Java 类的详细介绍:


1. 类的定义

在 Java 中,类使用关键字 class 定义。其基本结构如下:

public class ClassName {
    // 属性(字段/成员变量)
    数据类型 属性名;

    // 构造方法
    public ClassName() {
        // 初始化代码
    }

    // 方法
    返回类型 方法名(参数列表) {
        // 方法体
    }
}

2. 类的组成

一个类通常由以下几个部分组成:

(1) 属性(Fields)

属性是类中用于存储数据的变量。它们也被称为成员变量

  • 属性一般具有访问修饰符(public, private, protected),用于控制访问权限。
  • 可以赋予默认值。
public class Person {
    private String name; // 姓名
    private int age;     // 年龄
}
(2) 方法(Methods)

方法定义了类的行为,表示对象可以执行的操作。

  • 方法通常由访问修饰符、返回类型、方法名和参数列表组成。
  • 关键字 void 表示该方法不返回任何值。
public class Person {
    private String name;
    private int age;

    public void setName(String name) {
        this.name = name; // 设置姓名
    }

    public String getName() {
        return name; // 获取姓名
    }
}

this指针
Java 中有一个 this 指针(或者说引用),它是指向当前对象的引用。

this 的作用:

  1. 指向当前对象this 指针引用当前正在执行方法的对象实例,通常用于在对象的方法中访问当前对象的成员变量和方法。

  2. 区分成员变量和局部变量:当局部变量(比如方法参数)与类的成员变量同名时,this 用于区分它们。比如:

    public class Person {
        private String name;
    
        public Person(String name) {
            this.name = name;  // this.name 指的是类的成员变量,name 是方法的参数
        }
    }
    

    在上面的代码中,this.name 表示当前对象的成员变量,而 name 是构造方法的参数。

  3. 在构造函数中调用其他构造函数:Java 中,this() 可以用于在一个构造函数中调用当前类的另一个构造函数。这样可以避免重复代码:

    public class Person {
        private String name;
        private int age;
    
        public Person(String name) {
            this(name, 0);  // 调用带两个参数的构造函数
        }
    
        public Person(String name, int age) {
            this.name = name;
            this.age = age;
        }
    }
    

    在上面的代码中,this(name, 0) 调用了带有两个参数的构造函数。

注意事项:

  • this 是一个隐式引用变量,不能用于静态方法中,因为静态方法没有实例对象。
  • this 是指向当前对象的引用,它通常用于实例方法中,但也可以作为参数传递给其他方法或构造函数。

总结:this 是 Java 中指向当前对象的一个特殊引用,它在实例方法中非常常见,用于区分局部变量和成员变量、访问其他构造函数等。

(3) 构造方法(Constructor)

构造方法用于初始化对象。构造方法的名字必须与类名相同。

  • 默认构造方法没有参数。
  • 可以定义带参数的构造方法用于初始化对象时赋值。
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;
    }
}

3. 对象的创建

类定义完成后,可以通过实例化来创建对象,使用关键字 new 调用构造方法。

public class Main {
    public static void main(String[] args) {
        // 创建对象
        Person person = new Person("Alice", 25);

        // 调用方法
        person.setName("Bob");
        System.out.println(person.getName()); // 输出: Bob
    }
}

4. 访问修饰符

Java 提供了四种访问修饰符,用于控制类、方法或属性的访问范围:

修饰符当前类同包内子类其他类
public
protected×
default××
private×××

5. 类的特性

Java 类支持以下核心的面向对象特性:

(1) 封装(Encapsulation)

通过将属性设置为 private 并提供 gettersetter 方法,可以保护数据。

public class Person {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
(2) 继承(Inheritance)

Java 支持通过 extends 关键字实现继承,一个类可以继承另一个类的属性和方法。

public class Employee extends Person {
    private int employeeId;

    public int getEmployeeId() {
        return employeeId;
    }

    public void setEmployeeId(int employeeId) {
        this.employeeId = employeeId;
    }
}
(3) 多态(Polymorphism)

多态允许使用父类的引用指向子类对象,并通过动态绑定调用子类方法。

public class Main {
    public static void main(String[] args) {
        Person person = new Employee(); // 父类引用
        person.setName("Alice");
        System.out.println(person.getName());
    }
}

6. 类的高级特性

(1) 静态成员(Static Members)

使用 static 修饰符可以定义类级别的属性和方法。

public class MathUtil {
    public static int add(int a, int b) {
        return a + b;
    }
}

调用静态方法时,无需实例化对象:

int sum = MathUtil.add(5, 10);
(2) 内部类(Inner Class)

在一个类中定义另一个类。

public class OuterClass {
    class InnerClass {
        public void display() {
            System.out.println("This is an inner class.");
        }
    }
}
(3) 抽象类与接口
  • 抽象类(abstract):不能实例化,必须被子类继承。
  • 接口(interface):定义方法的规范,供类实现。
public abstract class Shape {
    abstract void draw();
}

public interface Drawable {
    void draw();
}

总结

Java 类是面向对象编程的基础,主要用于定义对象的属性和行为。通过封装、继承和多态,Java 类为开发者提供了强大的工具来创建模块化、可维护的程序。学习和熟练使用类是掌握 Java 编程的关键一步!


http://www.kler.cn/a/442971.html

相关文章:

  • 论文笔记-KDD2024-TransRec
  • 【Python爬虫系列】_032.Scrapy_全站爬取
  • 二百七十九、ClickHouse——用Kettle对DWD层清洗数据进行增量补全
  • FastAPI 的进阶应用与扩展技术:异步编程与协程、websocket、celery
  • Invalid bound statement (not found) 错误解决
  • BTP Integration Suite CPI Apache Camel
  • 太速科技-501-基于TMS320C6670的软件无线电核心板
  • 分布式事务seata(AT)与nacos整合-笔记2
  • Vue入门到精通:运行环境
  • CTFHUB 信息泄露 -phpinfo
  • Scratch教学作品 | 圣诞节平台游戏——在节日中挑战冒险,收集礼物吧! ✨
  • 基于Spring Boot的社区药房系统
  • STM32坑分享——擦写单片机内部Flash时影响串口通信
  • 在Linux系统中, 查询mysql
  • Linux高性能服务器编程 | 读书笔记 | 10. 高性能I/O框架库Libevent
  • 【SpringBoot中MySQL生成唯一ID的常见方法】
  • 服务器运行Vue项目
  • /:087启动游戏时提示丢失”d3dx···.dll””VCOMP···.dll”
  • React 第十七节 useMemo用法详解
  • [NOIP2016 普及组] 海港 -STL-队列queue