首页 > 其他分享 >面相对象语言

面相对象语言

时间:2023-12-11 16:55:42浏览次数:25  
标签:初始化 函数 对象 成员 局部变量 面相 变量 语言

万事万物皆对象:
描述对象:类来描述对象
将对象的共同特征进行抽取进而形成类。
大象:类
属性:鼻子、眼睛...:变量
行为:跑、拔树...:函数

类与类之间的访问需要创建对象,格式为 `类名 对象名 = new 类名();`。通过对象名可以访问类的成员,例如 `对象名.成员名`。

每个 new 出来的对象都占据堆内存中的独立空间。对象间赋值会使两者指向相同的内存地址,修改一个对象的属性会影响到另一个对象。

Car car2 = car;
car2.wheels = 3;
car.show();
car.wheels += 2;
car.color = "白色";
car2.show();

这段代码主要展示了对象的创建、属性的访问和修改,以及对象间的引用关系,可通过修改属性值来验证对象之间的关联性。


成员变量与局部变量的区别 :

声明位置 :
a. 成员变量声明在函数外部,类的内部
b. 局部变量声明在函数或语句内部
默认值 :
a. 成员变量有默认值,默认值与数组动态声明默认值一致
b. 局部变量除了形式参数外都要先初始化再使用
内存中的位置 :
a. 成员变量依附于对象,存在于堆内存中
b. 局部变量依附于函数或语句,存在栈内存中
生命周期 :
a. 成员变量依附于对象,与对象同生共死
b. 局部变量在函数或者语句执行完后,就会清理掉

当内存中不再有变量引用该区域时,GC会清理堆内存中对应的区域

局部变量必须先初始化再访问
默认初始化先于显式初始化执行

匿名对象 :
1.匿名对象调用属性无意义
2.当函数只被调用一次时,可以使用匿名对象
3.匿名对象可以作为参数进行传递,其实传递的是地址值

 

private : 表示私有的 ; 成员被private修饰后,只能在当前类中访问
属性私有化,须提供get与set函数   set函数
1.返回值类型 : void
2.形参 : 对应成员变量的类型   开发中,禁止在get与set函数中进行逻辑判断 , 前端页面可以帮助过滤数据   见名知意
就近原则 :
this : 代表正在访问当前类的对象的类型 ; this一定是当前类的类型吗?
1.通过 this.成语名 来区分成员变量和局部变量     构造器/构造函数/构造方法/Constructor : 是用来为单个对象进行初始化的

格式 : 修饰符 类名(数据类型 变量名, 数据类型 变量名, ...){
初始化内容;
}

格式注意 :
1.构造函数没有返回值类型,也不能写 void
2.构造函数的名字就是当前类的类名
3.不能出现 return 语句

注意 :
1.当没有显式定义构造器时 , 那么JVM默认会提供一个空参构造器
2.一旦显式定义构造器,无论定义的构造器是否带参数,那么JVM都将不再提供空参构造器
3.多个构造器之间是以重载的形式存在的

类名 对象名 = new 构造器 ;

标签:初始化,函数,对象,成员,局部变量,面相,变量,语言
From: https://www.cnblogs.com/yuec5067/p/17894803.html

相关文章

  • 七,JAVA面向对象
    对象用类来描述对象,将对象的共同特征进行抽取而形成类大象:类属性:鼻子眼睛:变量行为:跑,拔树:函数同一个类中。成员函数可以直接访问其他成员类与类之间的访问:需要创建对象格式:类名对象名=new类名();Carcar=newCar();//对象名.成员名car.run();c......
  • Python语言合并列表元素常用的方法!
    众所周知,列表是Python中常见的数据类型,它可以存储多个元素。但由于某种需求,我们有时候需要将多个元素进行合并,那么Python语言如何合并列表中的元素?以下是常用方法介绍。1、使用+运算符在Python中,可以使用+运算符将两个列表的元素合并成一个新的列表。例如,假设有两个列......
  • 【Cpp 语言基础】简单聊一聊to_string
    头文件:#include<string>功能:将数字常量转换为字符串参数:value返回值:转换好的字符串重载版本:std::stringto_string(intvalue);(1)(C++11起) std::stringto_string(longvalue);(2)(C++11起) std::stringto_string(longlongvalue);(3)(C++11起) std::stringto......
  • access 类对象使用
    类模块代码如下:OptionExplicit'定义按钮对象和onclick触发内容PrivateWithEventsm_ClosebtnAsAccess.CommandButtonConstfEventsAsString="[EventProcedure]"'定义触发方式(access需要有此才能触发click动作,否则无效,也不会报错)'PublicSubInitCls(frmAsAcce......
  • 大语言模型“祛魅”
    基于特斯拉前AI总监AndrejKarpathy的教程讲解|啥都会一点的研究生公众号1.概念解释LargeLanguageModels-大语言模型,LLMs大模型的组成:参数文件+运行这些参数的代码文件LLMs:经验性的人工制品,目前尝试去解释参数运行的原理,但只能解释一部分,总的来说还是经验主义占......
  • Go 语言字符串使用方式与技巧
    Go语言字符串使用方式与技巧原创 frank Golang语言开发栈 2023-12-1023:00 发表于北京收录于合集#Golang语言156个#Golang进阶学习106个大家好,我是frank。欢迎大家点击标题下方蓝色文字「Golang语言开发栈」关注公众号。公众号主页点击右上角三个点图标,设......
  • 【愚公系列】2023年12月 面向对象设计原则(七)-迪米特法则(Law of Demeter or LoD)
    ......
  • Java 面向对象入门
    第一章:类与对象1.1类与对象类与对象的定义和使用在Java中定义类,使用关键字class完成。语法如下:class类名称{属性(变量);行为(方法);}我们可以通过下面的实例来感受一下如何定义一个Person类。classPerson{//类名称首字母大写Stringn......
  • C语言中的运算符优先级
    C语言中的运算符优先级前言这几天在调试一个程序,遇到了一个bug,就是需要读取寄存器的数据。该数据是一个16bit的数据,按照高8位一个byte和低8位一个byte分别存放在了不同的寄存器地址中。但是在我读取数据的时候,总是会出现数据不符合预期的情况。在程序中是这样子的,读取的高8位数......
  • sysfs - 用于导出内核对象的_文件系统 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/filesystems/sysfs.htmlsysfs-_用于导出内核对象的_文件系统[email protected]@cs.clemson.edu修订日期2011年8月16日原始日期2003年1月10日它是什么sysfs是一个基于ramfs的基于RAM的文......