首页 > 其他分享 >5/23

5/23

时间:2024-05-23 23:29:01浏览次数:23  
标签:函数 23 局部变量 static 修饰 全局变量 构造函数

1: 构造函数

构造函数,是一种特殊的方法。主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载

访问修饰符 构造方法名 ( ) {
//初始化代码
}

主要特点
(1)构造函数的命名必须和类名完全相同。在java中普通函数可以和构造函数同名,但是必须带有返回值;
(2)构造函数的功能主要用于在类的对象创建时定义初始化的状态。它没有返回值,也不能用void来修饰。这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择。而其他方法都有返回值,即使是void返回值。尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的;
(3)构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用;而一般的方法是在程序执行到它的时候被调用的;
(4)当定义一个类的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略,不过Java编译器会提供一个默认的构造函数。此默认构造函数是不带参数的。而一般的方法不存在这一特点;
(5)构造函数有回滚的效果,构造函数抛出异常时,构造的是一个不完整对象,会回滚,将此不完整对象的成员释放(c++)
(6)当一个类只定义了私有的构造函数,将无法通过new关键字来创建其对象,当一个类没有定义任何构造函数,C#编译器会为其自动生成一个默认的无参的构造函数。
(7)在Python中构造函数必须通过重写__init__方法实现

2: 构造函数的作用:就是给属性进行赋值的:也叫对象的初始化,每一个类都会有一个默认的构造函数
构造函数:就是方法名和类名完全一致的函数他没有返回值类型也没有void,如果我们写了构造函数,那么默认的构造函数将不存在
不能够被调用

3: 构造函数的重载:
重载:方法名与类名相同,但是参数不同,参数的类型不同和数量不同: 作用:就是同样的方法实现不同的功能
构造函数的重载:方法名与类名相同,但是参数不同,参数的类型不同和数量不同,但是没有返回值没有void

4: static 关键字:静态的
修饰属性:全局变量,优先被加载
修饰的方法被成为,静态方法:不用对象也可以进行调用,可以通过类型.方法
修饰代码块: 优先被加载,并且只加载一次
他不可以修饰局部变量

static修饰的对象:
static关键字可以修饰:局部变量、全局变量、函数

static修饰后改变了什么?
1.改变了生存周期;就是一个变量、函数从分配内存去表示到回收内存的过程
2.改变了作用域;就是可以在哪些文件里可以使用该函数

static修饰不同对象时的作用:
(1)局部变量:
局部变量就是在函数内定义的变量,普通的局部变量,生存周期是随着函数的结束而结束,每次函数重新执行,局部变量都是新的值,不会保留上次的值。当用static修饰后,局部变量的生存周期就是当程序结束才会结束。再次调用函数时,用static修饰的变量会保留上一次的值。
应用:在函数内,我们想保留某些变量上一次的值,就可以用static去修饰该变量。比如:想统计该函数被执行的次数时,就可以定义被static修饰的int型变量,没执行一次该变量就++。
总结:用static修饰的局部变量,改变了生存周期,但是没有改变其作用域。改变其生存周期的原因是被static修饰的局部变量被存放在.bss段或者.data段,而普通的局部变量是存放在栈上的。

(2)全局变量:
全局变量用static修饰改变了作用域,没有改变生存周期。普通的全局变量是可以被其他的.c文件引用的,一旦被static修饰,就只能被定义该全局变量的.c文件引用,使得该全局变量的作用范围减小。
作用:当一个全局变量不想被其他.c文件引用时,可以用static修饰,这样其他的文件就不能通过extern的方式去访问,这样主要是为了数据安全。
总结:改变其作用域,没有改变生存周期。

(3)函数:
函数用static修饰,改变了作用域。普通的函数是可以通过头文件声名的方式被其他文件调用,被static修饰后就只能在本文件里被调用,这样是为了数据的安全。
作用:有些函数并不想对外提供,只需要在本文件里调用,这时候就可以用static去修饰。
总结:改变了作用域,没有改变其生存周期。

补充:
用static修饰全局变量和函数,除了上面说的数据安全,防止被误引用,还有一个作用是解决重名问题。当用static修饰了全局变量和函数后,其他文件里再定义同名的全局变量和函数也是可以的。一般来说,如果不是要对外提供的函数和全局变量,最好都用static修饰。

5: final 关键字:最终的:用final修饰的变量称为 常量,其值固定不变

(1)final关键字在Java中被称为完结器,表示最终的意思。
(2)final能声明 类,方法,属性:

使用final声明的类不能被继承
使用final声明的方法不能被重写
使用final声明的变量变成常量,常量是不可以被修改的

标签:函数,23,局部变量,static,修饰,全局变量,构造函数
From: https://www.cnblogs.com/wangxinyuan1108/p/18209606

相关文章

  • 5.23链表相交
    链接如下:https://leetcode.cn/problems/intersection-of-two-linked-lists-lcci/solutions/1395092/lian-biao-xiang-jiao-by-leetcode-solutio-2kne/这道题比较简单,暴力循环就可以结束,但是看官方题解还是有些技巧在的,索性也就记录一下。先说下我自己的思路,我自己的思路就是类似......
  • SCAU 19523 最长上升子序列长度
    19523 最长上升子序列长度时间限制:1000MS 代码长度限制:10KB题型:编程题   语言:不限定Description当元素ai1<ai2<……<aiK。就说这个序列是有序上升的。给定序列(a1,a2,……,aN),存在许多这样的子序列(ai1,ai2,……,aiK),其中1<=i1<i2<……<iK......
  • G2303高一上照片
    ![image](https://img20![image](https://img20![image](https://img20......
  • 2024-05-23 闲话
    今天看Friends的时候听到了这首歌。I'msingin'intherain,justsingin'intherain.Whatagloriousfeeling,I'mhappyagain.I'mlaughin'atclouds,sodarkupabove.Thesun'sinmyheartandI'mreadyforlove.Letthesto......
  • 2024年5月23日第五十五篇
    今天看了一下kotlin感觉在短时间内还是难以学完,于是打算继续用java开发android,然后用tkinter绘制了一个画像玩。#脸部(方形)canvas.create_rectangle(x0,y0,x1,y1,fill='peachpuff',outline='black')#头发hair_height=face_height//5canvas.crea......
  • 50-53-57 20240523
     50Shesawme,andwalkedover.Sheteeteredalittle,butitwasnotduetoheronde-tubercularleg.forherlimpwasalmostgone.teeter=towalkormoveunsteadilyorunsurely;totter;wobbletubercular=relatingtoorsufferingfromtuberculosis1这段文字描述......
  • 5-23安全运维管理
    环境管理:1.应指定专门的部门或人员负责机房安全,对机房出人进行管理,定期对机房供配电、空调、温湿度控制、消防等设施进行维护管理。2.应建立机房安全管理制度,对有关物理访问、物品进出和环境安全等方面的管理作出规定3.应不在重要区域接待来访人员,不随意放置含......
  • 全球2023年自然科学指数(Nature Index),各单位排名表
    地址:https://www.nature.com/nature-index/annual-tables/2023/institution/all/all/global自然科学指数(NatureIndex)大揭秘!近日,自然指数官网更新自然指数排名数据(统计时间节点为2022.11.1-2023.10.31),中国高校表现依旧强势。统计结果显示,重庆大学进入全球排名TOP200,位列全球......
  • 5-23安全建设管理
    定级和备案:1.应以书面的形式说明保护对象的安全保护等级及确定等级的方法和理由。2.应组织相关部门和有关安全技术专家对定级结果的合理性和正确性进行论证和审定。3.应保证定级结果经过相关部门的批准4.应将备案材料报主管部门和公安机关备案安全方案设计:......
  • 5-23安全管理人员
    人员录用1.应指定或授权专门的部门或人员负责人员录用2.应对被录用人员的身份、安全背景、专业资格或资质等进行审查,对其所具有的技术技能进行考核3.应与被录用人员签署保密协议,与关键岗位人员签署岗位责任协议人员离岗:1.应及时终止离岗人员的所有访问权限......