程序在使用类的时候一般都是如下步骤:
1 声明并实例化对象,这个时候实例化对象中的属性并没有任何数据的存在(刚生的小孩没穿衣服,还没起名呢)
2 需要通过一系列的setter方法为类中的属性设置内容。(【getter setter方法】叔叔阿姨给你买衣服)
也就是说想要获得一个正真可以正常使用的实例化对象,必须经过以上两个步骤才可以实现。
如果成员属性过多时,可以通过构造方法实现实例化对象的属性初始化
初始化就是为新对象设置数据
只有在关键字new时才配置构造方法。
构造方法的定义要求如下:
1 方法名称必须与类名称一致
2 构造方法不允许设置任何返回值
3 构造方法是在使用关键字new的时候自动调用的
①Person ②per = ③new ④Person();//get set方法也可以设置数据 可以设置修改数据
①Person ②per = ③new ④Person(“张三”,18);//构造方法设置数据, 初始化时用
①Person 主要定义所属类型
②per 实例化对象的名称,所有的操作通过对象来访问
③new 开辟新的内存空间
④Person(); 调用有参构造,Java程序考虑到程序的完整性,所有的类都会提供构造方法,如果类中没有定义
任何的构造方法,系统默认会提供一个无参构造方法,什么都不做,且看不见的构造方法,这是程序编译的时候自动创建的
如果已经创建了构造方法,这个默认的无参的构造方法不会被创建。
结论:一个类中至少有一个构造方法 这是永恒的定律 ;
构造方法为什么不允许有返回值类型?
构造方法没有返回值,且不用 void 定义?//编译器根据代码结构编译处理的,执行的时候也是根据代码结构处理
如果使用了void,则与普通方法无异,构造方法是在类对象产生的时候调用的,普通方法是类对象实例化之后调用的
构造方法也是方法,可以重载,构造方法重载只需考虑参数类型和个数即可,多个构造方法的定义时候,可按升降序
排列
构造方法可以传递属性数据,进一步进行分析对象的产生格式:
定义对象的名称:类名称 对象名称=NULL;
实例化对象: 对象名称=new 类名称();//这是匿名对象,由于该对象没有任何的引用名称
该对象使用一次之后,将会成为垃圾,被GC回收释放。那匿名对象又有什么意义呢?
如果这时只是通实例化对象性来进行类的操作也是可以的,而而这种形式的对象由于没有名字,就称之为匿名对象
只要是方法都可以传递任意数据类型(基本数据类型,引用数据类型)。