首页 > 其他分享 >oop_promax_static

oop_promax_static

时间:2024-03-29 12:33:44浏览次数:18  
标签:变量 对象 访问 实例 static oop promax 方法

static

/*
static:静态,可以修饰成员变量和方法。
成员变量按照有无static修饰,分为两种:
1.类变量:有static修饰,属于类,在计算机里只有一份,会被类的全部对象共享。   访问:类名.类变量(位于堆内存)
2.实例变量:(对象的变量):无static修饰,属于每个对象的。                  访问:对象.实例变量
!!!成员变量有几种?各自在什么情况下定义?
      类变量:数据只需要一份,且需要被共享时(访问,修改)
      实例变量:每个对象都要有一份,数据各不同(如:name、score、age)
!!!访问自己类中的类变量,是否可以省略类名不写?
      可以。
      注意:在某个类中访问其他类里的类变量,必须带类名访问。

成员方法按照有无static修饰,分为两种:
1.类方法:有static修饰,属于类,在计算机中只有一份,会被类的全部对象共享。     访问:类名.类变量(位于堆内存)
2.实例方法:(对象的方法):无static修饰,属于每个对象的。                   访问:对象.实例方法
!!!main方法也是类方法
!!!类方法的常见应用场景:
      类方法最常见的应用场景是做工具类。
!!!工具类是什么?
      工具类中的方法都是一些类方法,每个方法都是用来完成一个功能的,工具类是个开发人员共同使用的。
!!!使用类方法来设计工具类有啥好处?
      提高了代码复用;调用方便,提高了开发效率。

static的注意事项:
1.类方法中可以直接访问类的成员,不可以访问实例成员。(因为此时可以找到类地址,但是找不到对象地址)
2.实例方法中既可以直接访问类成员,也可以访问实例成员。(因为此时既可以找到类地址,也可以找到对象地址)
3.实例方法中可以出现this关键字,类方法中不可以出现this关键字。
!!!this是什么?
      this就是一个变量,可以在方法中,来拿到当前对象地址。
!!!this有啥应用场景?
      this主要用来解决:变量名称冲突问题。
*/

code-block

/*
代码块概述:
代码块是类的5大成分之一(成员变量、构造器、方法、代码块、内部类)

代码块分为两种:
1.静态代码块:
    格式:static{}
    特点:类加载时自动执行、由于类只会加载一次,所以静态代码块也会只执行一次(!!!)。
    作用:完成类的初始化,例如:对类变量(!!!)的初始化赋值。

2.实例代码块:
    格式:{}
    特点:每次创建对象时,执行实例代码块,并在构造器前执行。
    作用:和构造器一样,都是用来完成对象的初始化的,例如:对实例变量进行初始化赋值。
    应用常见:可以将构造器里重复的代码放入实例代码块内,提高开发效率。
*/

design-pattern

/*
!!!什么是设计模式?设计模式主要学什么?单例模式解决了什么问题?
    1.设计模式就是具体问题的最优解决方法。
    2.解决了什么问题?怎么写?
    3.确保一个类只有一个对象。

!!!单例设计模式:

     //饿汉式单例(拿对象时,已创建对象):
     写法:
          1.把类的构造器私有。
          2.定义一个类变量记住类的一个对象。
          3.定义一个类方法,返回对象。
     public class A{
          1.私有构造器
          private A(){
          }
          2.定义一个类变量记住类的一个对象-类变量a随类A只加载一次
          private static A a = new A();
          3.定义一个类方法,返回对象
          public static A getObject(){
          return a;
         }
     }

     应用场景和有啥好处:
     1.任务管理器、Runtime
     2.在这些业务场景下,使用单例设计模式,可以避免浪费内存。

!!!懒汉式单例(拿对象时,才开始创建对象)
     写法:
          1.把类的构造器私有。
          2.定义一个类变量用于存储类的一个对象。
          3.提供一个类方法,保证返回的是同一个对象。
     public class B{
          1.私有构造器
          private B(){
          }
          2.定义一个类变量用于存储类的一个对象
          private static B b;
          3.定义一个类方法,返回对象
          public static B getObject(){
                 if(b == null){
                    b = new B();
                 }else{
                    return b;
                 }
          }
     }
*/

标签:变量,对象,访问,实例,static,oop,promax,方法
From: https://www.cnblogs.com/qingandji/p/18103584

相关文章

  • 【基于价值分解网络的多智能体协同学习】【VDN】 【Value-Decomposition Networks For
    目录Value-DecompositionNetworksForCooperativeMulti-AgentLearning基于价值分解网络(VDN)的多智能体协同学习Abstract 摘要1Introduction引言1.1OtherRelatedWork 1.1其他相关工作2Background 2背景2.1ReinforcementLearning2.1强化学习​2.2De......
  • 5.95 BCC工具之dcsnoop.py解读
    一,工具简介dcsnoop工具用于追踪目录项缓存(dcache)的查找,并可用于dcstat(8)之外的进一步调查。由于dcache查找可能很频繁,因此输出可能很冗长。默认情况下,仅显示查找失败的情况。二,代码示例#!/usr/bin/envpythonfrom__future__importprint_functionfrombccimport......
  • 面试题:为什么hadoop不适合存储小文件(1、从NN角度去 分析 2、DN角度分析 3、从MR角度分
    NN角度:小文件一旦很多,那么小文件的权限信息,文件大小信息,归属信息等信息就会跟着增加,每一个小文件都会产生这些信息,这些信息一旦多起来,那么NameNode的元数据就会变大,会导致元数据的大小超过小文件大小的总和,会增加NameNode的压力,有可能导致主节点崩溃,用户就无法通信了DN角度:小文件......
  • 6.Hadoop MapReduce
    6.1编辑WordCount.java创建wordcount测试目录 编辑WordCount.java输入下面代码:可以访问https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html查看importjava.io.IOException;importjava.util.String......
  • reinterpret_cast 和 static_cast 的区别
    安全性:static_cast 是一个安全的类型转换,它只能转换具有继承关系或密切相关的类型,并且在编译时进行类型检查。reinterpret_cast 是一个不安全的类型转换,它可以将任何类型的指针转换为任何其他类型的指针,而无需考虑类型安全性。用途:static_cast 用于转换具有继承关系或密切......
  • 5.Hadoop HDFS 命令
    5.1启动HadoopMuti-NodeClusterstart-all.sh5.2创建与查看HDFS目录创建user目录:hadoopfs-mkdir/user创建user下hduser子目录:hadoopfs-mkdir/user/hduser创建hduser下test子目录:hadoopfs-mkdir/user/hduser/test查看之前创建的HDFS目录: 一次查看HDFS所有子目......
  • java中的static关键字
    Java中的static关键字修饰变量static修饰的变量属于类变量,被所有类所创建的对象共享修饰方法this关键字不能在static方法中使用static修饰的方法不能直接使用非static修饰的方法非static修饰的方法可以直接使用static修饰的方法修饰代码块静态的代码块是为了优化程......
  • oop对象使用过程中,调用了什么方法
    探索探索oop代码中,类对象定义、声明、初始化、赋值、引用等过程中,调用了什么函数。假设Test类有带参构造函数,拷贝构造函数,重载赋值运算符,析构函数等。1、Test类只有一个成员变量/*C++编译器对于对象构造的优化:用临时对象生成新对象的时候,临时对象就不产......
  • 计算机java项目|Springboot基于Hadoop的物品租赁系统的设计与实现
    作者主页:编程指南针作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库、技术互......
  • 3D开发工具HOOPS更新:高效、轻量化模型处理再突破!
    随着数字化转型的深入发展,高性能图形显示成为了软件开发领域的重要研究方向。在众多工具和库中,HOOPS因其强大的三维图形处理能力而受到广泛关注。HOOPS也与时俱进,持续更进与创新,近期又推出了一系列新功能,这些功能不仅提高了其性能,还大幅拓宽了HOOPS的应用范围,为开发者提供了前......