首页 > 其他分享 >类 属性和局部变量的注意点

类 属性和局部变量的注意点

时间:2023-04-25 22:02:35浏览次数:35  
标签:初始化 局部变量 修饰符 注意 权限 声明 属性

属性(成员变量) vs 局部变量

  • 1.相同点:
  •  1.1  定义变量的格式:数据类型  变量名 = 变量值
    
  •  1.2 先声明,后使用
    
  •  1.3 变量都有其对应的作用域
    

2.不同点:

  •  2.1 在类中声明的位置的不同
    
  •  属性:直接定义在类的一对{}内
    
  •  局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量
    
  •  2.2 关于权限修饰符的不同
    
  •  属性:可以在声明属性时,指明其权限,使用权限修饰符。
    
  •  	常用的权限修饰符:private、public、缺省、protected  --->封装性
    
  •  	目前,大家声明属性时,都使用缺省就可以了。
    
  •  局部变量:不可以使用权限修饰符。
    
  •  2.3 默认初始化值的情况:
    
  •  属性:类的属性,根据其类型,都有默认初始化值。
    
  •  	整型(byte、short、int、long):0
    
  •  	浮点型(float、double):0.0
    
  •  	字符型(char):0  (或'\u0000')
    
  •  	布尔型(boolean):false
    
  •  	引用数据类型(类、数组、接口):null
    
  •  局部变量:没有默认初始化值。
    
  •  	意味着,我们在调用局部变量之前,一定要显式赋值。
    
  •  	特别地:形参在调用时,我们赋值即可。
    
  •  2.4 在内存中加载的位置:
    
  •  属性:加载到堆空间中   (非static)
    
  •  局部变量:加载到栈空间
    

标签:初始化,局部变量,修饰符,注意,权限,声明,属性
From: https://www.cnblogs.com/fifawas/p/17354045.html

相关文章

  • 【Vue】如何watch v-for中的元素属性值
     如果你想watch一个v-for中的变量,你可以在vue组件的watch对象中创建一个函数,来监听这个变量。假设你有一个数组items,它是一个对象数组,你想要监听每个对象的name属性。那么你可以这样写:<template><divv-for="iteminitems":key="item.id">{{item.name}}</div></tem......
  • vue 使用Element 的form表单如何校验对象中的对象属性?
    1、校验对象中的对象属性,需要特殊处理下:<templatev-if="form.dataType===0"><el-form-itemlabel="芯片类型"prop="configExtend.schemeVersion"><el-selectv-model="form.configExtend.schemeVersion&quo......
  • dolphinscheduler3.1.5-全局参数使用注意事项
    1.每个工作流都应配置本身需要的全局参数,即使是作为sub_process因为工作流的全局变量只能作用到当前工作流中的任务节点及下一级的子工作流的任务节点,再嵌套子工作流,就获取不到最上级工作流的全局变量了。2.SQL任务类型,动态表名如何通过全局变量来获取在SQL任务节点配置本......
  • c语言中的链接属性和存储类型
    链接属性external属性:不在代码块中的函数和变量在缺省情况下都属于external链接属性。具有external属性的变量或者函数在其他源文件中无论被包含多少次,都指向同一个实体。#a.cintx;-----------......
  • Java方法的返回值及注意事项
    方法的返回值为什么要有带返回值的方法呢?调用处拿到方法的结果之后,才能根据结果进行下一步操作带返回值方法的定义和调用:如果在调用处,要根据方法的结果去编写另一段代码逻辑为了在调用处拿到方法产生的结果,就需要定义带有返回值的方法1.带返回值方法定义的格式:public......
  • java8 lambda 求list最大值、最小值、平均值、求和、中位数、属性排序(空指针异常,空值
    点击查看代码importorg.junit.Test;importjava.text.SimpleDateFormat;importjava.util.*;importjava.util.stream.Collectors;importstaticjava.util.Comparator.comparingLong;importstaticjava.util.stream.Collectors.*;/***@Author:*@Date:2018/12......
  • C# 启动UseShellExecute属性设置
    一个小小的细节难以不会改变大局,但多个细节可能会影响成败。在C#中使用Process启动时,ProcessStartInfo参数的UseShellExecute属性可设置为true和false,两者有什么区别,该如何使用?Process.Start本质上是启动一个新的子进程,当设置为true时,调用ShellExecute方法,设置为false时,调用Cr......
  • listwidget 实现横向流式排布关键以及过滤注意事项
    listWidget里面设置以下属性:this->setViewMode(QListView::IconMode);this->setResizeMode(QListView::Adjust);this->setMovement(QListView::Static);流式排布过滤时需要注意:在流式排布中过滤item采用隐藏的方式时,因为采用的是IconMode模式,所以偶尔会出现排版......
  • Validating multiple properties with FluentValidation(FluentValidator多个相关属性
    Sourcelink:ValidatingmultiplepropertieswithFluentValidation|TheCodetripper(wordpress.com)publicclassFooBarRequestValidator:AbstractValidator<FooBarRequest>{privatereadonlyIRepositoryrepository;publicFooBarRequestValid......
  • echarts 数据密集,如果设置sampling: 'average' 会导致提示框(tooltip)无法正常显示,但是
    如果数据比较密集,设置sampling:'average'确实可以加速绘图,但同时也可能导致提示框无法正常显示的问题。这个问题的原因是,sampling会对数据进行抽样,因此不会显示原始的数据点,而是将数据点以一定规律进行采样,取平均值或最大或其他值,因此提示框的内容可能不准确。不过,有一个简单的......