5.21(1)课堂笔记之构造方法

创建对象的实质:
在堆里开辟空间(属性空间、方法空间)。对象没有名,只有值。

创建对象不一定调用构造方法(New会调用)

实体类封装表单数据

实体类设值一定要通过set(),获取要通过get()


ArrayList的数据结构:数组
LinkList双向链表
ArrayMap/ HashSet/ HashMap 数组(每一个元素又是链表首结点)

HashMap 负载因子越高,意味着空间越大。负载因子越低,意味着空间浪费。


构造方法总结:

1.语法

方法名与类名相同,无返回值

Eg:

public  class  Dog {
        private  int  weight;
        public  Dog(int w) {
            weight = w;
        }
    }

2.作用

创建对象时,初始化对象里的属性。(抽象类有,接口无)。

3.时机

创建对象后,开辟空间后,调用构造方法,(构造方法必须为实例方法),接收对象的地址。

4.

在一个类中有多个构造方法,通过参数签名(个数、类型、顺序)区分,调用哪个构造方法。构造方法不能静态,只能实例,具有this指针。 方法的重载。

5.谁来调用

New或者系统来调用,人为不行

5.21(1)


构造方法为何不能静态:
因其需要传对象的地址,给对象初始化,所以不能静态。


对象有几种创建方式

1使用new关键字
通过调用构造方法, (调用一个或多个,需要知道类)。

2 使用反射技术
一开始不知道特定的类,通过调用无参构造方法;找到特定的类从而创建;通过调用构造方法(至少一个)。

3 使用克隆技术
不需要调用构造方法(浅拷贝)。两个属性相同、哈希地址相同,但不是同一个对象。

4 使用反序列化技术
不需要调用构造方法(深拷贝)。两个属性、哈希地址相同,但不是同一个对象。


拷贝

发生在克隆与反序列化中。

深拷贝:对象的所有内容拷贝到新创建的一个对象里。(all copy)

浅拷贝:对象的一部分内容拷贝到新创建的一个对象里。另一部分内容,两个对象共享。(partial copy)


对象创建

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值