七、java学习之静态关键字和代码块

news2024/9/9 6:56:57

一、static关键字

/*
 * static:是一个关键字,用于修饰成员变量和成员方法
 * static的特点:
 * 			被所有的对象所共享
 * 			可以使用类名调用
 * 			静态的加载优先于对象
 * 			随着类的加载而加载
 * * static的注意事项:
 * 			静态方法:
 * 				可以调用静态的成员变量
 * 				可以调用静态的成员方法
 * 				不可以调用非静态成员变量
 * 				不可以调用非静态成员方法
 * 				静态方法只能调用静态的成员
 * 			非静态方法:
 * 				可以调用静态的成员变量
 * 				可以调用静态的成员方法
 * 				可以调用非静态的成员变量
 * 				可以调用非静态的成员方法
 *
 * 	静态的方法中是否有this这个对象?没有的
 *
 *
 */
public class staictext {
    public static void main(String[] args) {
        Person.graduateFrom = "传智学院";

        Person p = new Person();
        p.name = "小苍同学";
        p.age = 18;
        //p.graduateFrom = "传智学院";
        p.speak();

        Person p2 = new Person();
        p2.name = "小波同学";
        p2.age = 20;
        //p2.graduateFrom = "传智学院";
        p2.speak();
        Person.study();
        p2.eat();

    }
}

class Person {
    String name;
    int age;
    static String graduateFrom;//毕业院校

    public void speak() {
        System.out.println(name + "---" + graduateFrom);
    }
    public static void study() {
        System.out.println(graduateFrom);

    }

    public static void sleep() {
        System.out.println("sleep");

    }

    public void eat() {

        System.out.println(graduateFrom);
    }
}

二、代码块

局部代码块:以”{}”划定的代码区域,此时只需要关注作用域的不同即可
构造代码块:优先于构造方法执行,构造代码块用于执行所有对象均需要的初始化动作
每创建一个对象均会执行一次构造代码块。
静态代码块:它优先于主方法执行、优先于构造代码块执行,当以任意形式第一次使用到该类时执行。该类不管创建多少对象,静态代码块只执行一次。可用于给静态变量赋值,用来给类进行初始化。

/*
 *   Coder静态代码块执行 --- Coder构造代码块执行 --- Coder无参空构造执行
 *
 *
 *   BlockTest静态代码块执行 --- BlockTest的主函数执行了 --- Coder静态代码块执行 --- Coder构造代码块执行 --- Coder无参空构造执行
 *   Coder构造代码块执行 --- Coder无参空构造执行
 *
 */
public class staictext {
    static {
        System.out.println("BlockTest静态代码块执行");
    }

    {
        System.out.println("BlockTest构造代码块执行");
    }


    public void BlockTest(){
        System.out.println("BlockTest无参构造执行了");
    }

    public static void main(String[] args) {
        System.out.println("BlockTest的主函数执行了");
        Coder c = new Coder();
        Coder c2 = new Coder();
    }
}

class Coder {

    static {
        System.out.println("Coder静态代码块执行");
    }

    {
        System.out.println("Coder构造代码块执行");
    }

    public Coder() {
        System.out.println("Coder无参空构造执行");
    }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1962849.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】模板的特化

文章目录 概念函数模板特化类模板特化全特化偏特化 概念 通常情况下,使用模板可以实现一些与类型无关的代码,但是有一些类型需要特殊处理,否则可能会得到一些错误的结果。 比如,在比较两个数的大小时,如果传入两个变量…

RAG+AI工作流+Agent:LLM框架该如何选择,全面对比MaxKB、Dify、FastGPT、RagFlow、Anything-LLM,以及更多推荐

RAGAI工作流Agent:LLM框架该如何选择,全面对比MaxKB、Dify、FastGPT、RagFlow、Anything-LLM,以及更多推荐 1.MaxKB MaxKB Max Knowledge Base,是一款基于 LLM 大语言模型的开源知识库问答系统,旨在成为企业的最强大脑。它能够帮…

MySQL:存储引擎相关命令、性能比较

目录 存储引擎 概念 类型 示例 数据库文件 MylSAM .frm .MYD .MYI InnoDB .frm .ibd .opt 查看指定表的存储引擎类型 查看系统支持的存储引擎 修改存储引擎 通过配置文件指定存储引擎 使用alter修改 创建表的同时指定存储引擎 使用set命令临时指定存储引擎…

java入门-API学习

package API;//告诉编译器,编译之后应该放到哪个包里import API.try3.test3; import API.try3.test5; import itcast.test2;import java.util.Random; import java.util.Scanner;//导包 public class Introduce {public static void main(String[] args) {//别忘记写…

为何2024年这4款ai智能写作工具被赞为YYDS?

在数字化的大潮中,人工智能已经深入到我们生活的各个角落,当然也包括写作领域。随着ai智能写作工具的兴起,它们不仅显著提升了写作效率,还为创作打开了全新的可能性。今天,我们就来看看四款特别受欢迎的AI写作工具&…

QT log4qt 记录日志

一.环境 Qt 5.15.2 log4qt 二.源码 1.编译 log4qt 源码,生成dll文件,并将.h 拷贝至项目目录 2.main.cpp #include "mainwindow.h"#include <QApplication> #include <QDir> #include "Log4Qt/logmanager.h" #include "Log4Qt/pattern…

职场离职潮:年轻人的选择与挑战

近年来&#xff0c;随着社会的发展和个人价值观的变化&#xff0c;越来越多的人开始主动或被动地离开职场。这一现象在社交网络上引发了广泛的讨论&#xff0c;甚至出现了专门分享离职经历的“离职博主”。为了深入了解这一趋势背后的真实情况&#xff0c;近日相关机构展开了一…

【传输层协议】UDP和TCP协议

UDP协议 UDP协议全称为User Datagram Protocol&#xff0c;用户数据报协议。UDP协议报文格式如下&#xff1a; 16UDP长度。表示整个数据报的最大长度&#xff0c;即UDP首部UDP数据。这个字段帮助我们确保在网络字节流中获取完整的UDP报文信息。校验和&#xff1a;用于检测数…

法兰式满油阀SPF-125-12C、STF-125-12C

法兰式满油阀又名预充阀、充液阀&#xff0c;合金钢和球墨铸铁材质&#xff0c;体积小&#xff0c;易于拆卸&#xff0c;低压损&#xff0c;流量大&#xff0c;构造简单&#xff0c;耐久性佳&#xff0c;可直接装置于油缸盖侧&#xff0c;SPF-32-12C、STF-32-12C、SPF-50-12C、…

ZooKeeper中间件监控指标解读

监控易是一款功能全面的IT监控软件&#xff0c;能够实时监控各类IT资源和应用的状态&#xff0c;包括中间件、数据库、网络设备等。对于ZooKeeper这一重要的分布式协调服务中间件&#xff0c;监控易提供了详尽的监控指标&#xff0c;帮助用户全面了解ZooKeeper集群的运行状态。…

鸿蒙(API 12 Beta2版)NDK开发【使用Node-API接口进行异步任务开发】

使用Node-API接口进行异步任务开发 场景介绍 napi_create_async_work是Node-API接口之一&#xff0c;用于创建一个异步工作对象。可以在需要执行耗时操作的场景中使用&#xff0c;以避免阻塞主线程&#xff0c;确保应用程序的性能和响应性能。例如以下场景&#xff1a; 文件…

最新版Polyverse - Music Bundle Deal [06.2024],win和mac,支持intel和M1芯片

一。Polyverse插件套装 Polyverse - Music Bundle Deal 1.释放您的创作潜力 无论您是希望突破创作极限的音乐制作人&#xff0c;还是寻求新颖创新方式来增强混音的音频工程师&#xff0c;Polyverse 捆绑包交易都具有非凡的价值&#xff0c;可以帮助您将音乐提升到一个新的水平…

【数学建模】【优化算法】:【MATLAB】从【一维搜索】到】非线性方程】求解的综合解析

目录 第一章&#xff1a;一维搜索问题 黄金分割法 股票交易策略优化 总结&#xff1a; 第二章&#xff1a;线性规划 线性规划&#xff08;Simplex 算法&#xff09; 生产计划优化 总结&#xff1a; 第三章&#xff1a;无约束非线性优化问题 梯度下降法 神经网络训练…

Python中导入不同文件夹中的函数

1、代码举例&#xff1a;from Python_CodeFile.LDAP3.del_file.Get_Computer_Dn import get_computer_dn # 以上代码导入路径为&#xff1a;Python_CodeFile/LDAP3/del_file/Get_Computer_Dn.py 文件中的get_computer_dn函数。

传统放牧方式与北斗科技的碰撞:北三短报文头羊定位追踪器PD28守护放牧生活

在大草原的广袤天地中&#xff0c;放牧生活是蒙古族人民的传统之一。然而&#xff0c;除了美丽和自由&#xff0c;放牧生活也伴随着一些危险。以前由于科技落后&#xff0c;人工成本低&#xff0c;主要依靠人力去放牧&#xff0c;牧民放牧顶风踏雪走个几十公里都极为寻常。除了…

AI识别智能称重-收银系统源码

系统概况 专门为零售行业的连锁店量身打造的收银系统&#xff0c;适用于常规超市、生鲜超市、水果店、便利店、零食专卖店、服装店、母婴用品、农贸市场等类型的门店使用。同时线上线下数据打通&#xff0c;线下收银的数据与小程序私域商城中的数据完全同步&#xff0c;如商品…

【ROS 最简单教程 005/300】ROS + VSCode 开发环境快速搭建

VSCode 全称 Visual Studio Code&#xff0c;是微软出的一款轻量级代码编辑器&#xff0c;免费、开源而且功能强大 本篇将以最简单的方法引导基于 VSCode 的&#xff0c;超全面开发环境的搭建及相关配置完全不了解 ROS 编程的友友&#xff0c;建议先看 &#x1f449;快速体验 指…

WIFI7在游戏领域引发的变革

随着无线技术的快速进步&#xff0c;游戏体验正变得愈加丰富、复杂和逼真。现在最新的WIFI 7技术将带来新的飞跃&#xff0c;不仅有望重新定义网络游戏的体验&#xff0c;还有可能彻底革新整个游戏产业。可以想象一下&#xff0c;在未来&#xff0c;游戏世界不再有延迟和连接中…

【嵌入式】一种基于串口命令的模块测试API模板

本文主要记录一种用于嵌入式开发中【模块测试】通用模板&#xff0c;使用 getopt_long()函数作为串口命令行解析的工具&#xff0c;从而进行测试代码逻辑的编写。 本文以ADC 和 uart 测试为例&#xff0c;介绍函数的使用以及测试代码的编写 【测试环境说明 】 本文是在 rt-thr…

一篇长文搭建AI大模型应用平台架构

在研究了6家知名公司如何部署生成式AI应用程序后&#xff0c;注意到它们的平台有很多相似之处。概述了生成式AI大模型应用平台的常见组件、它们的作用以及它们的实现方式。尽力保持架构的通用性&#xff0c;但某些应用程序可能会有所不同。 Generative AI大模型应用平台整体架…