java知识总结(四)this与static详解

Catia二次开发QueryInterface的操蛋问题 探索了很久,尝试录制宏,打开部件属性窗口,然后随意设置一些属性(必须改变一些东西才能录制成功,否则不会录制到任何东西),再看录制的结果,发现原来CATIAAnalyze是从Product那里来的。例如获得一个部件的体积,找到相关接口CATIAAnalyze,但是这个部件的CATIAAnalyze的对象不知道如何获取。总结一下,写Catia二开代码,就像漂亮国那款《莫里秀》 又名《爸爸死哪了》的综艺节目,大部分时间都是在找爸爸!Catia二开很痛苦,明明已经找到接口类,但是却不知道怎么获得这个接口类的对象。 阅读详情

java总结四 this与static详解

一、this

this:代表对象。就是所在函数所属对象的引用。

this到底代表什么呢?哪个对象调用了this所在的函数。this就代表哪个对象。就是哪个对象的引用。

开发时,什么时候使用this呢?

在定义功能时,如果该功能内部使用到了调用该功能的对象。这时就用this来表示这个对象。

同时this 还可以用于构造函数间的调用。

调用格式:this(实际参数);

this对象后面跟上 .  调用的是成员属性和成员方法(一般方法);

this对象后面跟上 () 调用的是本类中的对应参数的构造函数。

注意:用this调用构造函数,必须定义在构造函数的第一行。因为构造函数是用于初始化的,所以初始化动作一定要执行。否则编译失败。

二、static

static是一个关键字(修饰符)。用于修饰成员(成员变量和成员函数)。

特点:

1、想要实现对象中的共性数据的对象共享。可以将这个数据进行静态修饰。

2、被静态修饰的成员,可以直接被类名所调用。也就是说,静态的成员多了一种调用方式。类名.静态方式。

3、静态随着类的加载而加载。而且优先于对象存在。

弊端:

1、有些数据是对象特有的数据,是不可以被静态修饰的。因为那样的话,特有数据会变成对象的共享数据。这样对事物的描述就出了问题。所以,在定义静态时,必须要明确,这个数据是否是被对象所共享的。

2、静态方法只能访问静态成员,不可以访问非静态成员。因为静态方法加载时,优先于对象存在,所以没有办法访问对象中的成员。

3、静态方法中不能使用this,super关键字。因为this代表对象,而静态在时,有可能没有对象,所以this无法使用。

4、主函数是静态的。

什么时候定义静态成员呢?或者说:定义成员时,到底需不需要被静态修饰呢?

成员分两种:

1、成员变量。(数据共享时静态化)

该成员变量的数据是否是所有对象都一样:

如果是,那么该变量需要被静态修饰,因为是共享的数据。 

如果不是,那么就说这是对象的特有数据,要存储到对象中。 

2、成员函数。(方法中没有调用特有数据时就定义成静态)

    如果判断成员函数是否需要被静态修饰呢?

    只要参考,该函数内是否访问了对象中的特有数据:

    如果有访问特有数据,那方法不能被静态修饰。

    如果没有访问过特有数据,那么这个方法需要被静态修饰。

成员变量和静态变量的区别:

1、成员变量所属于对象。所以也称为实例变量。静态变量所属于类。所以也称为类变量。

2、成员变量存在于堆内存中。静态变量存在于方法区中。

3、成员变量随着对象创建而存在。随着对象被回收而消失。静态变量随着类的加载而存在。随着类的消失而消失。

4、成员变量只能被对象所调用 。静态变量可以被对象调用,也可以被类名调用。所以,成员变量可以称为对象的特有数据,静态变量称为对象的共享数据。

注意:静态的生命周期很长。

 

静态代码块:就是一个有静态关键字标示的一个代码块区域。定义在类中,可以完成类的初始化。

静态代码块随着类的加载而执行,而且只执行一次(new 多个对象就只执行一次)。如果和主函数在同一类中,优先于主函数执行。

主函数的解释:保证所在类的独立运行。是程序的入口。被jvm调用。

 

public:访问权限最大。

static:不需要对象。直接类名即可。

void:主函数没有返回值。

main: 主函数特定的名称。

(String[] args):主函数的参数,是一个字符串数组类型的参数。jvm调用main方法时,传递的实际参数是 new String[0]。


jvm默认传递的是长度为0的字符串数组。我们在运行该类时,也可以指定具体的参数进行传递。可以在控制台,运行该类时,在后面加入参数。参数之间通过空格隔开。jvm会自动将这些字符串参数作为args数组中的元素,进行存储。

静态代码块、构造代码块、构造函数同时存在时的执行顺序:

静态代码块 --构造代码块 --构造函数

WIN10系统下VS2019编译CloudCompare2.12.4 CloudCompare2.12.4 阅读详情

相关推荐

别再凭感觉了!手把手教你用Excel搞定激光器MPE与NOHD安全计算(附模板下载)

本文详细介绍了如何利用Excel自动化计算激光器的MPE(最大允许照射量)和NOHD(标称眼危害距离),提升激光安全评估的效率和准确性。通过实战案例和模板下载,帮助工程师快速掌握GB/T 7247标准中的关键计算,避免常见错误,适用于激光测距仪等设备的安评工作。

weixin_30954265的博客 466

this 和 static 详解

.....

lwj_07的博客 1351

Linux系统下奥比中光Astra Pro相机SDK部署与避坑指南

本文详细指导了在Linux系统下部署奥比中光Astra Pro深度相机SDK的全过程,涵盖系统准备、SDK安装、设备权限配置及常见问题排查。重点解析了USB设备规则配置这一关键步骤,并提供了Python与C++项目的集成方法,旨在帮助开发者快速完成相机配置,避免常见陷阱。

weixin_28455801的博客 299

this和static关键字的用法及定义和代码块及包的用法

(1)this关键字代表当前对象;(2)使用this关键字引用成员变量(3)使用this关键字引用成员方法或者构造方法,(说明:在一个类的方法或构造方法内部,可以使用“this成员变量”这样的格式引用成员变量名,常常来区分车成员变量名和局部变量名)

2301_76460223的博客 216

百度api爬虫(1)从百度api中爬取地点数据

几句废话———— 百度api就是基于百度地图的开发接口,这么大的地图公司居然给开发接口真的很感激哎! 所以,言归正传。现在项目需求要把乌鲁木齐市内的所有清真寺都用矢量圈出来,然后做点统计啥的,最后做个专题图产品。 怎么把清真寺找出来? 领导的意思是你一个一个上网搜吧,这就是你的工作量。那我当然要想办法啊,边工作边学习工作才有意义嘛! 然后就发现百度api可以实现我的需求。其实可以通过py...

weixin_43105618的博客 8900

weblogic 集群搭建,双机部署,相关问题记录

4.5.集群搭建1 参考网址https://wenku.baidu.com/view/76365129cd1755270722192e453610661ed95aa4.html IP地址 端口 角色 192.168.1.160 9001 AdminServer ...

zl386119974的专栏 1669

this和static

this和static

weixin_69323488的博客 197

[QMT量化交易小白入门]-六十九、ETF动量评分策略,历史年化收益率107%

C . bar_date } 跳过') returnC . bar_date } 跳过') returnC . bar_date } 跳过') return作用:如果当前不是回测模式且不是最后一根K线,则记录日志并跳过本次任务。这是为了避免在实时交易中对尚未完成的数据进行处理。

木头大左的博客 2228

九、Java类核心语法:构造器、this、封装与static详解

本文介绍了Java类的基础语法及核心概念,包括构造器、this关键字、封装、JavaBean和static关键字。首先讲解了类的定义结构,作为对象模板包含属性和方法。重点阐述了构造器的特点和使用,this关键字的三种用法,以及封装实现数据安全性的方法。详细说明了JavaBean的标准规范和static关键字修饰的静态成员特性。全文通过示例代码展示了各概念的实际应用,帮助理解面向对象编程的基本原理,为Java开发奠定基础。

jaysee-sjc的博客 2550

从 SM59 到 SPROXY,打通 ABAP 后端与 ES Repository 的代理生成链路

本文探讨了在SAP PI/PO项目中配置ABAP后端系统与ES Repository连接的关键步骤,重点解决ABAP Proxy生成时无法获取接口模型的问题。文章指出: 该配置本质是建立设计时通道,使ABAP系统能通过SPROXY访问ES Repository中的接口模型并生成代理类 配置核心是在SM59创建名为SAP_PROXY_ESR的HTTP连接(类型G),需确保: 目标路径为/rep 使用具备SAP_XI_IS_SERV_USER角色的服务账号 连接测试通过后仍需在SPROXY中验证完整功能 常见陷

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 58

微信小程序 - 苹果ios无法播放视频、安卓android手机可以播放,使用video播放MP4视频时安卓正常播放视频iOS无法播放出现黑屏、加载失败或一片黑没反应等(uniapp微信小程序也能解决)

微信小程序ios无法播放视频,微信小程序 video标签 ios不能播放视频或视频黑屏,ios无法播放视频,android手机可以播放,视频格式为mp4,uniapp微信小程序安卓设备android可以播放在线网络视频 ,苹果ios设备无法播放视频,微信小程序 video标签 ios不能播放视频或视频黑屏,安卓手机正常播放iPhone手机却黑屏,如何解决这个问题,在线播放视频URL链接,iOS无法播放MP4视频文件的解决方案,在Android设备上可以正常播放,但在iOS设备上却出现黑屏、无法加载或无法播放

🏆 前端领域优质创作者 1万+

Java的this、static关键字详解

文章目录this对象创建过程this的本质this的常见用法this的简单使用this() 调用重载构造方法static概述静态初始化块 this 对象创建过程 构造方法是创建 Java 对象的重要途径,通过 new 关键字调用构造器时,构造器也确实返回该类的对象,但这个对象并不是完全由构造器负责创建。创建一个对象分为如下四个步骤: 1.分配对象空间,并将对象成员变量初始化为0或空; 2.执行属性值的显式初始化; 3.执行构造方法; 4.返回对象的地址给相关的变量。 this的本质 this 的本质就是“创

bboy枫亭的博客 2249

Google Earth Engine 红树林制图方法的代码(三个模块)

谷歌地球引擎红树林制图方法(GEM)提供了一种直观、易用且可复制的工具,适用于广泛的非专业沿海管理者和决策者。该工具全面回顾并整合了相关的红树林遥感文献,并利用云计算的力量,包括简化的基于图像的潮汐校准方法。GEM 可免费用于非营利用途,并在 GEE 中运行,包含全面且详细注释的代码。GEM 专门设计用于绘制全球范围内多日期红树林分布并量化其动态变化。目前可用的工具和方法未能充分利用沿海管理者通常持有的丰富地方专业知识——GEM 致力于填补这一空白,帮助结合地方专业知识与 GEE 的云计算能力。

此星光明博客 559

Java static 与 final 详解

本文深入解析Java中static和final关键字的核心概念与应用。static用于声明类级别的成员(变量、方法、代码块、内部类),在类加载时分配在方法区,所有实例共享同一副本。final表示不可变性,可修饰类(不可继承)、方法(不可重写)和变量(引用不可变)。static final组合定义全局常量,可能被编译器内联优化。文章通过代码示例详细展示了static的四种使用形式(静态变量、常量、代码块、方法)和final的三种应用场景(类、方法、变量),并分析了它们在内存中的存储特点及线程安全特性。

J_liaty的博客 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

java面向对象:this与static

this 指代当前对象,用于区分实例变量和局部变量等,可在实例方法中访问实例成员。static 表示静态,属于类而非对象,可修饰变量、方法等,通过类名直接访问,无需创建对象

yyayyl_xzq的博客 1271

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

this关键字、static关键字 详解

1.this关键字除了可以调用成员变量之外,还可以调用构造方法。2.在一个Java类中,其方法可以分为成员方法和构造方法两种。构造方法是一个与类同名的方法,在Java类中必须存在一个构造方法。一般存在一个默认的无参的构造方法,其作用是对对象成员进行初始化。3.构造方法和普通方法的区别。

菜鸟的博客 1897

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

JAVA this、static

代码解析:1).首先执行main方法,main方法入栈。2).执行Person p =new Person("张三",20),等号右边先执行,堆中开辟一块内存空间,数据全部为默认值,构造方法入栈,栈中没有默认值,后将数据赋值给栈中对应的变量,构造方法中的this指向正在堆中创建的对象,将堆中的数据进行修改。再执行构造方法中的System.out.println("构造方法....this=" + this),此时的this即为正在被创建的对象的地址。

2402_86604855的博客 784

static,this关键字

不在一个类调用如图下:

2501_91638000的博客 800

Java编程中this和static关键字的用法详解

前言:在平时的编码过程中,相信大家都会频繁地使用到this或static关键字。但可能你仅仅是了解它的用法,而对其内部机制知之甚少。今天我们就一起来探讨一下它们的内部机制。 一.this关键字的详解 首先我们来总结一下this常见的应用场景,下面我们定义一个User类,基本包含了我们常见的this的用法,如下所示: public class User { private Str...

白哥哥的博客 1456

Java中this关键字和static关键字

文章目录1 this关键字1.1 this表示本类属性1.2 this调用本类方法1.2.1 this调用普通方法1.2.2 this调用构造方法1.2.3 this表示当前对象2 static关键字2.1 static属性(类属性)2.2 static方法(类方法) 1 this关键字 this关键字主要有三个方面的用途: this表示本类属性。 this表示本类方法。 this...

zhao_miao的博客 3037

JAVA常见的关键字 final、this、super、static、abstract

1.Final关键字 2.This关键字 3.Super关键字 3.1 基本用法 3.1.1访问父类的成员变量 3.1.2调用父类的方法 3.1.3 调用父类的构造函数 3.2super关键字的深层理解 3.3 注意事项 4.Static关键字 4.1 作用范围 4.2 使用 4.2.1 修饰类的成员变量 4.2.2修饰类的成员方法 4.2.3 修饰代码块 4.2.4 修饰内部类 4.2.5 注意事项 5.abstract关键字 5.1 为什么要用? 5.2

2301_77358195的博客 983

Java 为什么在static中不能使用this关键字

Static方法是类方法,先于任何的实例(对象)存在。 即Static方法在类加载时就已经存在了,但是对象是在创建时才在内存中生成。 而this指代的是当前的对象 在方法中定义使用的this关键字,它的值是当前对象的引用。也就是说你只能用它来调用属于当前对象的方法,或者使用this处理方法中成员变量和局部变量重名的情况. 而且,更为重要的是this和super都无法出现在static修饰的方法中。...

木头人i 1518

天天写 static、this、super、final,你真敢说自己没用错过一次吗?

本文是Java技术博客《final、static、this、super四大关键字解析》的开篇部分。作者以幽默风趣的语言分享了Java中四个关键字的实用解析: final:强调其"不可被重新绑定"而非完全不可变的特性,详细说明了修饰变量、方法和类的不同场景,并给出实际代码示例。 static:澄清static的本质是"归类"而非单纯为了方便,分析了修饰变量、方法、代码块和内部类的正确用法,并列举了推荐使用和避免使用的场景。 this与super:简要介绍这两个关键字的指

欢迎来到菜鸟不学编程的博客 2067

Java关键字,super,this,static关键字

摘要:本文介绍了Java面向对象编程中的继承、super、this和static关键字。继承实现代码复用,子类继承父类属性和方法;创建子类对象时会先创建父类对象。super用于访问父类成员,this指代当前对象。static修饰的成员属于类而非对象,存储在方法区,具有特定的加载顺序和执行规则。文章通过代码示例详细说明了这些关键字的用法、内存模型及注意事项,帮助理解Java面向对象的核心概念。

2401_88603156的博客 1282

Java中static与this解析

一、this关键字 1.作为当前类的实例调用实例方法或实例变量出现在方法体xxx()中:此时this的具体对象取决于调用方法xxx()的实例,但是this的类型是可以确定的——当前类 2.以this(参数)形式调用构造器方法出现在另一个重载的构造器中 3.作为当前对象值返回 4.疑问与猜测:系统何时为this分配内存空间:个人猜测隐式实例this的内存分配时间在静态代码块、静态成员变量及静态

JohnyHe 1392

Java中关于构造方法、this、super和static的详解

1.构造方法:完成对象的初始化。(亦可重载) 实例化一个对象后,如果要对这个对象的属性赋值,则必须访问对象的属性,或调用setXxx()方法。如果需要在实例化对象的同时就为这个对象的属性进行赋值,可以通过构造方法来实现。构造方法(也被称为构造器)是类的一个特殊成员,它会在类实例化对象时被自动调用。 条件: 1>方法名与类名相同; 2>在方法名的前面没有返回值的类型; 3>在方法中...

qq_43185543的博客 1289
上一篇: java知识总结(三)封装、继承和多态
下一篇: java知识总结(五)抽象和接口
海之沐
博客等级 码龄12年 1536粉丝 71原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值