深入剖析 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,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎 点赞、收藏、关注
深入剖析 Java 类属性与类方法的应用的更多相关文章
- python类属性和类方法(类的结构、实例属性、静态方法)
类属性和类方法 目标 类的结构 类属性和实例属性 类方法和静态方法 01. 类的结构 1.1 术语 —— 实例 使用面相对象开发,第 1 步 是设计 类 使用 类名() 创建对象,创建对象 的动作有两 ...
- django之创建第4-2个项目-访问class类属性和类方法
1.修改index <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- python-面向对象-09_类属性和类方法
类属性和类方法 目标 类的结构 类属性和实例属性 类方法和静态方法 01. 类的结构 1.1 术语 —— 实例 使用面相对象开发,第 1 步 是设计 类 使用 类名() 创建对象,创建对象 的动作有两 ...
- Python小白学习之如何添加类属性和类方法,修改类私有属性
如何添加类属性和类方法,修改类私有属性 2018-10-26 11:42:24 类属性.定义类方法.类实例化.属性初始化.self参数.类的私有变量的个人学习笔记 直接上实例: class play ...
- Python面向对象 --- 新旧式类、私有方法、类属性和类方法、静态方法
一.Python面向对象中的新旧式类 1)新式类(推荐使用):在定义类时,类后边括号里要继承基类(object).在python3.x中若没有指定父类,会默认使用的是object作为基类:在pytho ...
- python面向对象编程(2)—— 实例属性,类属性,类方法,静态方法
1 实例属性和类属性 类和实例都是名字空间,类是类属性的名字空间,实例则是实例属性的名字空间. 类属性可通过类或实例来访问.只有通过类名访问时,才能修改类属性的值. 例外的一种情况是,当类属性是一个 ...
- python面向对象学习(六)类属性、类方法、静态方法
目录 1. 类的结构 1.1 术语 -- 实例 1.2 类是一个特殊的对象 2. 类属性和实例属性 2.1 概念和使用 2.2 属性的获取机制 3. 类方法和静态方法 3.1 类方法 3.2 静态方法 ...
- Python类属性和类方法
01. 类的结构 1.1 术语 —— 实例 使用面相对象开发,第 1 步 是设计 类 使用 类名() 创建对象,创建对象 的动作有两步: 1) 在内存中为对象 分配空间 2) 调用初始化方法 __in ...
- java 类属性、方法加载的顺序
1.静态变量 2.静态代码块 3.局部代码块 4.构造函数 5.普通代码块 6.静态方法 7.普通方法 8.普通属性
- Python:类属性,实例属性,私有属性与静态方法,类方法,实例方法
From: http://www.cnblogs.com/pengsixiong/p/4823473.html 属性分为实例属性与类属性 方法分为普通方法,类方法,静态方法 一:属性: 尽量把需要用户 ...
随机推荐
- java+mysql数据库实现的学生管理系统
说明: java+mysql数据库实现的学生管理系统 功能 实现增加学生.删除学生.修改学生.学生列表.查询学生功能 截图: 开发工具/技术 java eclipse 价格:50元,有需要联系 微信 ...
- Dockerfile和docker-compose详解
Dockerfile镜像制作 docker/podman中, 镜像是容器的基础,每次执行docker run的时候都会指定哪个基本镜像作为容器运行的基础.我们之前的docker的操作都是使用来自doc ...
- 【Azure Redis】Redis服务负载达到100%后的影响及有何优化方法
问题描述 Redis服务负载达到100%后的影响及有何优化方法 问题解答 Redis的负载达到100% 意味着 Redis 服务器繁忙,无法跟上请求,导致客户端发送出来的请求超时. 常规情况下有一下几 ...
- 【Azure API 管理】APIM添加Log-to-eventhub的策略后,一些相关APIM与Event Hub的问题
问题描述 1) APIM 到Event Hub 写入日志是否有数量限制,比如每秒最大写入数量: 2) 是否可以在同一个APIM配置多个Event Hub,如果可以该APIM写入日志的峰值是 ...
- SpringCloudStream消息驱动
1. 基本介绍 官方文档: https://spring.io/projects/spring-cloud-stream#learn 背景: 在一般的大型项目中,或者分布式微服务结构的系统里,一般都会 ...
- idea导入spring源码运行缺失cglib和objenesis的jar包的办法【亲测有效】
idea导入spring源码运行缺失cglib和objenesis的jar包的办法[亲测有效] 亲测有效,网上说的大多废话 上图,操作如下,运行gradle
- 轻松驾驭Python格式化:5个F-String实用技巧分享
F-String(格式化字符串字面值)是在Python 3.6中引入的,它是一种非常强大且灵活的字符串格式化方法. 它允许你在字符串中嵌入表达式,这些表达式在运行时会被求值并转换为字符串,这种特性使得 ...
- STM32 LwIP学习过程问题总结(一):LwIP ping不通,抓包发现ICMP校验和为0x0000
一.问题 今天在将之前的STM32 LwIP1.4.1版本程序移植到2.1.2版本上时,发现ping不同,但是开发板有ICMP回复包,黄颜色警告checksum为0x0000.说明LwIP移植应该是没 ...
- idea vue 格式化 并保存文件 宏 快捷键 ctrl+s
idea 格式化是 reformat Code 存盘是 ctrl+s 所以创建一个宏,先点格式化,再点存盘,然后定义个ctrl+s的快捷键覆盖之前的保存就ok了. 资料: IDEA 配置宏定义 并为宏 ...
- 没有 Release 文件的解决方法
https://blog.csdn.net/weixin_44903509/article/details/108825738 sudo apt-get update 出现问题 E: 仓库 " ...