面相对象语言

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

类与类之间的访问需要创建对象,格式为 `类名 对象名 = 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 构造器 ;
posted @   Cyptals  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示