2023-3-27

1.this 和 super 关键字的作用
      this 是对象内部指代自身的引用,同时也是解决成员变量和局部变量同名问 题;this 可以调用成员变量,不能调用局部变量;this 也可以调用成员方 法,但是在普通方法中可以省略this,在构造方法中不允许省略,必须是构造方法的第一条语句,而且在静态方法当中不允许出现 this 关键字。
      super 代表对当前对象的直接父类对象的引用,super 可以调用直接父类的成员变量(注意权限修饰符的影响,比如不能访问private 成员) super 可以调用直接父类的成员方法(注意权限修饰符的影响,比如不能访问 private 成员);super 可以调用直接父类的构造方法,只限构造方法中使 用,且必须是第一条语句
2. static 关键字的作用
static 可以修饰 变量、方法、代码块和内部类 static 属性属于这个类所有,即由该类创建的所有对象共享同一个 static 属 性。可以对象创建后通过对象名.属性名和类名.属性名两种方式来访问。也可 以在没有创建任何对象之前通过类名.属性名的方式来访问。 static 变量和非 static 变量的区别(都是成员变量,不是局部变量)
1).在内存中份数不同
不管有多少个对象,static 变量只有 1 份。对于每个对象,实例变量都会有单独的一份static 变量是属于整个类的,也称为类变量。而非静态变量是属于对象的,也称为实例变量
2).在内存中存放的位置不同
静态变量存在方法区中,实例变量存在堆内存中 *
3).static 内部类:属于整个外部类,而不是属于外部类的每个对象。不能访问 外部类的非静态成员(变量或者方法),.可以访问外部类的静态成员
遇到的问题是js这一块逻辑还不太清晰
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,您可以使用 Eclipse Paho MQTT C 客户端库来实现在 Linux 下通过 C 语言发送 MQTT 消息。以下是一个简单的示例代码,用于创建 JSON 字符串并将其发布到 MQTT 主题中: ```c #include "stdio.h" #include "stdlib.h" #include "string.h" #include "MQTTClient.h" #include "cJSON.h" #define ADDRESS "tcp://localhost:1883" #define CLIENTID "ExampleClientPub" #define TOPIC "test" #define QOS 1 #define TIMEOUT 10000L int main(int argc, char* argv[]) { MQTTClient client; MQTTClient_connectOptions conn_opts = MQTTClient_connectOptions_initializer; char* payload = NULL; int rc; cJSON *root = cJSON_CreateObject(); cJSON *data = cJSON_CreateArray(); cJSON *item1 = cJSON_CreateObject(); cJSON *item2 = cJSON_CreateObject(); cJSON *item3 = cJSON_CreateObject(); cJSON_AddStringToObject(root, "ts", "2023-3-27 19:50:0"); cJSON_AddItemToArray(data, item1); cJSON_AddItemToArray(data, item2); cJSON_AddItemToArray(data, item3); cJSON_AddStringToObject(item1, "tag", "MSTM"); cJSON_AddStringToObject(item1, "value", "2023-3-27 19:50:0"); cJSON_AddStringToObject(item2, "tag", "VT"); cJSON_AddNumberToObject(item2, "value", 12.34); cJSON_AddStringToObject(item3, "tag", "SPPRWL11"); cJSON_AddNumberToObject(item3, "value", 102.29); payload = cJSON_PrintUnformatted(root); MQTTClient_create(&client, ADDRESS, CLIENTID, MQTTCLIENT_PERSISTENCE_NONE, NULL); conn_opts.keepAliveInterval = 20; conn_opts.cleansession = 1; if ((rc = MQTTClient_connect(client, &conn_opts)) != MQTTCLIENT_SUCCESS) { printf("Failed to connect, return code %d\n", rc); exit(-1); } MQTTClient_message pubmsg = MQTTClient_message_initializer; pubmsg.payload = payload; pubmsg.payloadlen = strlen(payload); pubmsg.qos = QOS; pubmsg.retained = 0; MQTTClient_deliveryToken token; MQTTClient_publishMessage(client, TOPIC, &pubmsg, &token); printf("Waiting for publication of %s\n" "on topic %s for client with ClientID: %s\n", payload, TOPIC, CLIENTID); rc = MQTTClient_waitForCompletion(client, token, TIMEOUT); printf("Message with delivery token %d delivered\n", token); MQTTClient_disconnect(client, 10000); MQTTClient_destroy(&client); cJSON_Delete(root); free(payload); return rc; } ``` 这个程序使用 cJSON 库来创建 JSON 字符串,并使用 Eclipse Paho MQTT C 客户端库来连接到 MQTT 代理服务器并将消息发布到主题中。您需要在代码中更改 `ADDRESS`、`CLIENTID` 和 `TOPIC` 来适应您的实际情况。当您运行程序时,它将在终端输出消息发布的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值