深入剖析 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 属性分为实例属性与类属性 方法分为普通方法,类方法,静态方法 一:属性: 尽量把需要用户 ...
随机推荐
- 【Azure 应用服务】Azure App Service 在不配置自定义域名的情况下如何使用呢?
问题描述 根据中国法律法规的规定及相关监管机构的要求,当使用应用服务创建应用时,须立即绑定一个已经完成ICP备案的自定义域名并通过该自定义域名访问该应用服务.任何通过Internet对应用服务默认域名 ...
- 如何实现十亿级离线 CSV 导入 Nebula Graph
本文首发于 Nebula Graph Community 公众号 本次实践是基于业务需求及后续扩展,通过技术选型确定了 Nebula Graph 图数据库,首先需要验证 Nebula Graph 数据 ...
- 隐藏在 Nebula Graph 背后的星辰大海
本文首发于 Nebula Graph Community 公众号 作者介绍 大家好,我是 Anyzm,graph-ocean(GitHub:https://github.com/nebula-cont ...
- 17. Class字节码指令解析
## 1. 概述 官方文档:https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html Java 字节码对于虚拟机,就好像汇编语言对于 ...
- Java 一悟结束异常处理 Biu丶
- Java面试挂在线程创建后续,不要再被八股文误导了!创建线程的方式只有1种
写在开头 在上篇博文中我们提到小伙伴去面试,面试官让说出8种线程创建的方式,而他只说出了4种,导致面试挂掉,在博文中也给出了10种线程创建的方式,但在文章的结尾我们提出:真正创建线程的方式只有1种,剩 ...
- AT_abc342_d 题解
UD 2024/2/24 22:36 感谢 Lixiang_is_potato 指出一处笔误. 本文同步发表于洛谷. 赛时挂了,但是赛后 3min AC,我是飞舞. 题意 给你一个长度为 \(N\) ...
- Zabbix6.0使用教程 (二)—zabbix6.0常用术语
上一次我们已经详细介绍了zabbix6.0的新增功能,本篇我们来说说zabbix6.0常用的一些术语,这个对小伙伴日常使用zabbix的时候还是非常有用,建议大家收藏起来,话不多说,附上干货. 概览 ...
- ENVI为遥感影像设置空间坐标系的方法
本文介绍基于ENVI软件,对不含有任何地理参考信息的栅格遥感影像添加地理坐标系或投影坐标系等地理参考信息的方法. 我们先来看一下本文需要实现的需求.现有以下两景遥感影像,其位于不同的空间位置: ...
- vue通用的增删改查按钮组件
代码复用:这个组件可以在多个页面或组件中使用,避免了重复编写相同的按钮代码. 灵活性:通过showButtons属性,可以根据需要显示不同的按钮.默认情况下,它会显示添加.修改和删除按钮,但你也可以根 ...