深入剖析 Java 类属性与类方法的应用

本文涉及的产品
应用实时监控服务-用户体验监控,每月100OCU免费额度
容器镜像服务 ACR,镜像仓库100个 不限时长
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
简介: Java 类属性,也称为字段,是类中的变量。它们用于存储与类相关的数据。创建类属性在类定义中声明属性

Java 类属性

Java 类属性,也称为字段,是类中的变量。它们用于存储与类相关的数据。

创建类属性

在类定义中声明属性:

public class Main {
   
  int x; // 属性
  String name; // 属性
}

访问类属性

使用点语法访问对象的属性:

Main myObj = new Main();
myObj.x = 5; // 设置属性值
System.out.println(myObj.x); // 获取属性值

修改类属性

可以修改对象的属性值:

Main myObj = new Main();
myObj.x = 5;
myObj.x = 10; // 修改属性值
System.out.println(myObj.x); // 输出 10

属性类型

属性可以是任何数据类型,包括:

  • 基本类型:int、double、boolean、char等
  • 引用类型:String、Date、List等

修饰符

可以使用修饰符来控制属性的访问权限:

  • public:公开访问
  • private:私有访问
  • protected:受保护访问
  • default:默认访问

示例

public class Main {
   
  private int x; // 私有属性
  public String name; // 公开属性

  public void myMethod() {
   
    // 可以访问私有属性
    x = 10;
  }

  public static void main(String[] args) {
   
    Main myObj = new Main();
    // 可以访问公开属性
    myObj.name = "John Doe";
    // 无法访问私有属性
    // myObj.x = 5; // 错误
  }
}

一些额外的说明:

  • 在 Java 中,类属性通常被定义为private,以便只能通过类的方法来访问它们。
  • 为了方便起见,也可以将类属性定义为public,但这会使它们更容易被意外更改。
  • 建议使用getter和setter方法来访问和修改类属性,以便更好地控制对属性的访问。

示例:

public class Main {
   
  private int x;

  public int getX() {
   
    return x;
  }

  public void setX(int x) {
   
    this.x = x;
  }

  public static void main(String[] args) {
   
    Main myObj = new Main();
    myObj.setX(5);
    System.out.println(myObj.getX()); // 输出 5
  }
}

在这个示例中,x 属性是私有的,但可以通过 getX() 和 setX() 方法来访问和修改。

还有一些其他与类属性相关的内容:

  • 静态属性:静态属性属于类本身,而不是类的实例。
  • 常量属性:常量属性的值不能被修改。
  • 枚举属性:枚举属性的值只能是预定义的一组值之一。

Java 类方法

Java 类方法 是在类内声明的代码块,用于执行特定的操作。它们类似于函数,但与类本身相关联,而不是与类的实例相关联。

创建类方法

使用 static 关键字声明类方法:

public class Main {
   
  static void myMethod() {
   
    System.out.println("Hello World!");
  }
}

调用类方法

使用类名和方法名,后跟括号 () 调用类方法:

public class Main {
   
  static void myMethod() {
   
    System.out.println("Hello World!");
  }

  public static void main(String[] args) {
   
    myMethod();
  }
}

示例:

public class Main {
   
  static void myMethod(String name) {
   
    System.out.println("Hello, " + name + "!");
  }

  public static void main(String[] args) {
   
    myMethod("John Doe");
  }
}

输出:

Hello, John Doe!

类方法与实例方法

  • 类方法属于类本身,而实例方法属于类的实例。
  • 类方法可以直接通过类名调用,而实例方法需要通过类的实例调用。
  • 类方法通常用于执行与类相关的通用操作,而实例方法通常用于操作类的实例。

修饰符

可以使用修饰符来控制类方法的访问权限:

  • public:公开访问
  • private:私有访问
  • protected:受保护访问
  • default:默认访问

示例:

public class Main {
   
  private static void myMethod() {
   
    System.out.println("Hello World!");
  }

  public static void main(String[] args) {
   
    // myMethod(); // 错误,无法访问私有方法
  }
}

一些额外的说明:

  • 类方法通常用于执行与类相关的通用操作,例如:

    • 创建新实例
    • 验证输入
    • 提供工具类方法
  • 实例方法通常用于操作类的实例,例如:

    • 获取或设置属性值
    • 执行计算
    • 改变对象的状态
  • 可以使用 final 关键字声明类方法,使其无法被重写。

  • 可以使用 abstract 关键字声明抽象类方法,其定义必须由子类提供。

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

相关文章
|
2月前
|
消息中间件 Java Kafka
在Java中实现分布式事务的常用框架和方法
总之,选择合适的分布式事务框架和方法需要综合考虑业务需求、性能、复杂度等因素。不同的框架和方法都有其特点和适用场景,需要根据具体情况进行评估和选择。同时,随着技术的不断发展,分布式事务的解决方案也在不断更新和完善,以更好地满足业务的需求。你还可以进一步深入研究和了解这些框架和方法,以便在实际应用中更好地实现分布式事务管理。
|
9天前
|
移动开发 前端开发 Java
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
JavaFX是Java的下一代图形用户界面工具包。JavaFX是一组图形和媒体API,我们可以用它们来创建和部署富客户端应用程序。 JavaFX允许开发人员快速构建丰富的跨平台应用程序,允许开发人员在单个编程接口中组合图形,动画和UI控件。本文详细介绍了JavaFx的常见用法,相信读完本教程你一定有所收获!
Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)
|
10天前
|
JSON Java Apache
Java基础-常用API-Object类
继承是面向对象编程的重要特性,允许从已有类派生新类。Java采用单继承机制,默认所有类继承自Object类。Object类提供了多个常用方法,如`clone()`用于复制对象,`equals()`判断对象是否相等,`hashCode()`计算哈希码,`toString()`返回对象的字符串表示,`wait()`、`notify()`和`notifyAll()`用于线程同步,`finalize()`在对象被垃圾回收时调用。掌握这些方法有助于更好地理解和使用Java中的对象行为。
|
10天前
|
安全 算法 Java
Java CAS原理和应用场景大揭秘:你掌握了吗?
CAS(Compare and Swap)是一种乐观锁机制,通过硬件指令实现原子操作,确保多线程环境下对共享变量的安全访问。它避免了传统互斥锁的性能开销和线程阻塞问题。CAS操作包含三个步骤:获取期望值、比较当前值与期望值是否相等、若相等则更新为新值。CAS广泛应用于高并发场景,如数据库事务、分布式锁、无锁数据结构等,但需注意ABA问题。Java中常用`java.util.concurrent.atomic`包下的类支持CAS操作。
41 2
|
2月前
|
缓存 Java 开发者
Java多线程并发编程:同步机制与实践应用
本文深入探讨Java多线程中的同步机制,分析了多线程并发带来的数据不一致等问题,详细介绍了`synchronized`关键字、`ReentrantLock`显式锁及`ReentrantReadWriteLock`读写锁的应用,结合代码示例展示了如何有效解决竞态条件,提升程序性能与稳定性。
151 6
|
29天前
|
JSON 前端开发 JavaScript
Java属性为什么不能是is开头的boolean
在Java实体类中,阿里规约要求boolean属性不应以is开头。文章通过实际案例分析了isUpdate字段在JSON序列化过程中变为update的问题,并提供了自定义get方法或使用@JSONField注解两种解决方案,建议遵循规约避免此类问题。
Java属性为什么不能是is开头的boolean
|
1月前
|
监控 Java 数据库连接
Java线程管理:守护线程与用户线程的区分与应用
在Java多线程编程中,线程可以分为守护线程(Daemon Thread)和用户线程(User Thread)。这两种线程在行为和用途上有着明显的区别,了解它们的差异对于编写高效、稳定的并发程序至关重要。
35 2
|
2月前
|
安全 Java 开发者
Java中WAIT和NOTIFY方法必须在同步块中调用的原因
在Java多线程编程中,`wait()`和`notify()`方法是实现线程间协作的关键。这两个方法必须在同步块或同步方法中调用,这一要求背后有着深刻的原因。本文将深入探讨为什么`wait()`和`notify()`方法必须在同步块中调用,以及这一机制如何确保线程安全和避免死锁。
46 4
|
2月前
|
Java
深入探讨Java中的中断机制:INTERRUPTED和ISINTERRUPTED方法详解
在Java多线程编程中,中断机制是协调线程行为的重要手段。了解和正确使用中断机制对于编写高效、可靠的并发程序至关重要。本文将深入探讨Java中的`Thread.interrupted()`和`Thread.isInterrupted()`方法的区别及其应用场景。
52 4
|
2月前
|
Java 数据处理 数据安全/隐私保护
Java处理数据接口方法
Java处理数据接口方法
27 1