java随笔:类成员

2023-11-17

类成员

1.介绍

在java中只能包含成员变量,方法,构造器,初始化块,内部类(接口,枚举)5种成员,其中static可以修饰成员变量,方法,初始化块,内部类(接口,枚举),用static修饰的成员就是类成员。类成员属于整个类,而不属于单独的对象

2.类变量的在内存中的状态

类变量处于整个类,当系统第一次准备使用类时,系统会为该类分配空间,类变量开始生效,直到该类被卸载(生存周期和类一致)

3.用对象可以访问类变量吗?

举个栗子:

public class StaticDemo {
    public static void test(){
        System.out.println("调用static方法");
    }
    public static void main(String[]args){
        StaticDemo staticDemo=new StaticDemo();
        staticDemo.test();//其实是把staticDemo重新变换为类 用类去调用
    }
}

答案是可以的,但是其实从表面上而言使用对象去访问,实际上还是委托类去访问类变量

4.static关键字的作用(构建单例类)

单例类:创建的类仅仅只会创建一个实例对象

public class Singleton {
    private static Singleton instance;
    private Singleton(){}
    /**
     * 提供静态方法,返回实例
     * */

    public static Singleton getInstance(){
        if(instance==null){
            instance=new Singleton();
        }
        return instance;
    }
}


public class SingletonTest {
    public static void main(String[]args){
        Singleton s1=Singleton.getInstance();
        Singleton s2=Singleton.getInstance();
        System.out.println(s1==s2);
        //true
    }
}

注:类中通用方法toString的使用

重写toString方法可以对对象进行“自我描述”

public class Apple {
    private String color;
    private String weight;
    public Apple(){}

    public String getColor() {
        return color;
    }

    public Apple(String color, String weight) {
        this.color = color;
        this.weight = weight;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getWeight() {
        return weight;
    }

    public void setWeight(String weight) {
        this.weight = weight;
    }
    //重写方法 toString() 提供描述信息
    public String toString(){
        return "Apple[color="+color+",weight="+weight+"]";
    }
}

通过重写toString方法总是返回该对象所有令人感兴趣的信息组成的字符串

类名【field=值1,field=值2,...】

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java随笔:类成员 的相关文章

  • 软件测试方法——静态测试与动态测试

    从测试方法的角度可以分为手工测试和自动化测试 1 静态测试 所谓静态测试 static testing 就是不实际运行被测软件 而只是静态地检查程序代码 界面或文档中可能存在的错误的过程 从概念中我们可以知道 其包括对代码测试 界面测试和文

随机推荐

  • Python re.match函数的使用详解

    正则表达式是用于匹配和操作文本的强大工具 在Python中 re模块提供了一组函数来处理正则表达式 其中 re match函数用于尝试从字符串的起始位置匹配一个模式 本文将详细介绍re match函数的使用方法 并提供相应的源代码示例 re
  • MiniDump不生成或者生成0字节

    今天在使用C写一个Windows多线程程序时 发现退出过程中有段错误 为了方便快速的定位问题 我使用了MiniDump MiniDump c源码如下 include
  • 2021年系统集成项目管理工程师(软考中级)连夜整理考前重点

    一 信息与信息化 1 信息论奠基者香农认为 信息就是能够用来消除不确定性的东西 8种状态需要3位比特表示 5位比特则可表示64种状态 信息 物质材料 能源是三大戓略资源 2 信息论两个层次 本体论和认识论 3 信息传输模型 信源 编码 信道
  • Qt鼠标单击与长按

    在Qt中 可以通过重载QWidget的mousePressEvent mouseReleaseEvent 和mouseMoveEvent 等事件来实现对鼠标事件的处理 判断鼠标是长按还是点击 可以通过记录鼠标按下的时间和释放的时间 通过两个
  • 15.DDT+unittest+excel ddt框架结合单元测试

    Excel读取数据的三种方式 1 一次性读取所有的数据 对内存的要求高点 必须掌握 2 需要用的时候读取所有的数据 就是磁盘读写要求高点 磁盘 速度最低 内存 速度中间 CPU 速度最高 3 使用DDT进行参数化 方法一 一次性读取所有的数
  • 缓存相关

    缓存雪崩怎么解决 如果缓存因为某个原因不可用 导致大量请求涌向数据库 可能会导致数据库崩溃 缓存雪崩目前主要有两种方案 1 使用集群 集群部署缓存 当一台宕机时 其他机器仍能提供缓存服务 2 Hystrix 熔断器 起到熔断 降级 限流三个
  • 文章内容无法复制复制不了

    一些文档 什么的复制不了 主要有几种方法 目录 1 禁用js 2 ctrl P打印 3 选中要复制的内容 gt 拖到网址输入框 另外 通过一些浏览器插件 感觉用处不大 1 禁用js 优点 可以直接复制原有段落文字的格式 缺点 有点麻烦 对百
  • 通俗理解三大范式

    关系型数据库中我们用的最多的就是第一范式 1NF 第二范式 2NF 第三范式 3NF 所以需要我们深入理解三大范式 第一范式 1NF 要求数据库的每一列都是不可分割的原子数据项 在上面的表中 家庭信息 和 学校信息 列均不满足原子性的要求
  • Windows下C语言操作硬件设备的方法

    本文作者 Fezl 本文原地址 http blog csdn net u010147522 article details 49912221 之前都是在linux下操作硬件设备 open read write ioctl 相当方便 最近要检
  • jQuery 入门教程(23): jQuery UI Autocomplete示例(一)

    AutoComplete 在获取焦点后 随着用户键入的内容 可以在预订的数据源中查找和已输入的内容相匹配的内容列表供用户选择 这可以用作之前输入过的内容也可以用作自动填充相关内容 比如根据城市名 自动填充邮编等 你可以使用本地数据源或是远程
  • nvm的安装及使用、下载cnpm以及git的配置

    nvm下载 下载图中安装包 下载完了就有这个 双击安装 路劲把C改为D即可 这是直接下载选择好安装路劲之后 没配置的环境变量 配置后的环境变量 1 文件夹设置 2 环境变量配置 查询nvm版本号 nvm常用命令如下 使用nvm下载 node
  • 适合初学者的强化学习教程(1): python使用gym实践和注意事项

    作者 知乎 Ai酱 安装步骤和报错问题 安装 pip install gym 报错 AttributeError module gym envs box2d has no attribute BipedalWalker 这是因为gym没有安
  • C语言for循环必备练习题

    话不多说 直接上题 笔者的一贯要求 速度 1 作业标题 663 关于while 条件表达式 循环体 以下叙述正确的是 假设循环体里面没有break continue return goto等等语句 作业内容 A 循环体的执行次数总是比条件表
  • 构造函数初始化列表

    目录 一 初始化列表 二 初始化列表的使用 三 注意 1 每个成员变量在初始化列表中只能出现一次 初始化只能初始化一次 2 类中包含以下成员 必须放在初始化列表位置进行初始化 3 尽量使用初始化列表初始化 因为不管你是否使用初始化列表 对于
  • ubuntu16.04上利用opencv目标跟踪工具实现8种目标跟踪

    一共八种工具 八种工具包括 BOOSTING Tracker 和Haar cascades AdaBoost 背后所用的机器学习算法相同 但是距其诞生已有十多年了 这一追踪器速度较慢 并且表现不好 但是作为元老还是有必要提及的 最低支持Op
  • 操作系统面试题总结

    1 线程与进程的区别联系 2 进程通信方式有哪些 3 同步的方式有哪些 4 ThreadLocal与其它同步机制的比较 5 进程死锁的条件 第一题 1 线程是进程的一个实体 一个进程可以拥有多个线程 多个线程也可以并发执行 一个没有线程的进
  • [Unity 3D] DOTween 常用函数

    DOTween官方文档 http dotween demigiant com documentation php 一 控制变量 1 DOTween To static DOTween To getter setter to float du
  • 端口扫描介绍

    文章目录 1 端口的基本概念 2 端口的常见分类 3 端口扫描原理 1 端口的基本概念 端口 在计算机网络领域中是个非常重要的概念 它是专门为计算机通信而设计的 它不是硬件 不同于计算机中的 插槽 可以说是个 软端口 端口是由计算机的通信协
  • vue+Element-ui 导入excel文件生成json数据

    1 首先安装依赖 import XLSX from xlsx 2 建立读取excel文件的js文件 以便调用 importExcel js import XLSX from xlsx export function readExcel fi
  • java随笔:类成员

    类成员 1 介绍 在java中只能包含成员变量 方法 构造器 初始化块 内部类 接口 枚举 5种成员 其中static可以修饰成员变量 方法 初始化块 内部类 接口 枚举 用static修饰的成员就是类成员 类成员属于整个类 而不属于单独的