您的位置:首页 > 游戏 > 手游 > 详情页设计素材_婚庆公司网站制作_网站前期推广_武安百度seo

详情页设计素材_婚庆公司网站制作_网站前期推广_武安百度seo

2024/12/23 4:42:59 来源:https://blog.csdn.net/huipeng926/article/details/144478395  浏览:    关键词:详情页设计素材_婚庆公司网站制作_网站前期推广_武安百度seo
详情页设计素材_婚庆公司网站制作_网站前期推广_武安百度seo

一  类

1.定义:将生活中的事物根据需要提取某些特性和方法,利用计算机语言将其定义(抽象过程)出来的称为类,即抽象地表示现实事物的一种方式,便于计算机进行识别

注:具体要从现实事物中抽取什么属性取决于要解决的现实问题

2.内容:

区别于C语言的结构体:类既有属性又有方法,结构体只包含属性

3.作用:实现代码的高内聚(即有关联的代码放在一起,方便之后维护)

4.注意事项:

(1)类名要使用大驼峰

(2)有main方法的类一般要被public修饰

(3)在本类中成员方法可以直接使用成员属性,在不同类中则需要先创建该类的对象,再通过引用去进行访问

二  对象

1.定义:基于自定义类的类型创建出的变量即为对象,也称为实例,其创建的过程称为实例化

2.内存中分配:其new出来的对象存放于堆上,其在堆上的地址存放于其所创建出来的引用类型中,并且该引用类型存放于栈上

3.特性:

(1)实例属性是每个对象独有一份,每创建一个对象就有一份对应的属性

(2)但方法不是每个对象都独有一份,其统一存放于方法区上,为所有成员共用根据其this引用,来决定其对应的成员属性调用谁的

三  this引用

1.解决的问题:

(1)当形参与成员变量重名

(2)方法调用知道要调用的对应是谁的成员变量

2.本质:指向调用该方法的当前对象,哪个对象调用,就为哪个对象的引用类型

例如 Date date=new Date();

date.set();

此时是new Date()这个对象调用,则this对应即为new Date()这个对象的引用类型,其性质与date差不多

3.特性:

(1)static方法中不存在this,其为公用的,为类方法,无需创建实例也能实现,所以不可以有成员变量和成员方法的存在

(2)this为成员方法的第一个隐藏参数,由编译器自动传递,调用相当给this赋值了该对象在堆区上的地址

(3)this的内容是死的,其不为变量,不能修改,不能赋值

四  对象的构造和初始化

1.初始化的方式

(1)构造方法

(2)默认初始化

(3)就地初始化

(4)代码块初始化

2.构造方法

(1)作用:用于在创建对象的时候顺便初始化对象中的成员变量(仅完成初始化这个作用)

(2)要求

(i)四要素:要求不能返回值,一般为public修饰,少数特别情况使用private,名字必须与类名相同

(ii)方法重载:可以方法重载,也可以利用this在一个构造方法中调用另一个构造方法,但只能单向调用,双向调用会成环

(3)特点

(i)关于无参构造方法:如果用户不显示定义编译器会自动生成一个无参版本的构造方法,如果编译器显式定义,则不会生成

(ii)调用:无需手动调用,在创建对象时会由编译器自动调用,并且在对象的生命周期中只会调用一次

(4)自动生成:idea中按alt+ins+(fn)->Constructer选择中要初始化的变量按回车

3.默认初始化

(1)情况:仅创建变量,没有给它初始化时,JVM会自动给对象中的变量赋默认值

注:这也是为什么局部变量必须初始化才能使用,而对象中的变量可以不用原因

(2)补充:

创建对象时JVM的工作

(i)判断对象对应类是否已经加载,没有则加载类

(ii)为对象在堆上分配空间

(iii)处理并发安全问题

多个线程同时申请对象,JVM要保证给对象分配的空间不冲突

(iv)初始化所分配的空间(默认初始化)

(v)设置对象头信息,调用构造方法

4.就地初始化:在创建变量的·同时赋初值

5.代码块初始化:使用{}赋初值

6.初始化方法的先后顺序

就地初始化 >代码块初始化>构造方法初始化

并且前面执行的会被后面执行的所覆盖掉

五  对象的打印

1.目的:直接打印对象对应的引用就可以打印出对象中的对应内容

2.实现方式:在该类中重写toSring方法

注:toString是一个特殊的方法,重写之后打印对象的时候,编译器会自动调用toString方法,把对象转为String类型

补充:重写时可以使用注解来标明,标明后编译器会对其做更严格的检查

注解:相当于对这个方法和类做了一些更严格的补充说明,编译器之后会对其进行更严格的检查

3.要求:

(1)其返回类型必须为String

(2)方法名必须为toString

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com