Java 面向对象之构造方法
方法重载 Overload
1.概念: 一个类中的一组方法 相同的方法名字 不同的参数列表 构成了方法重载
参数的不同体现在 参数的个数 参数的类型 参数的顺序 三个方面
2.作用: 为了便于记忆和调用 使得方法调用时更加的灵活
3.自己也可以设计方法重载
调用的时候 先通过方法名字来定位
名字一致 通过参数列表的数据类型来定位
方法返回值 修饰符--->跟方法重载没什么关系
4.JDK1.5 之后 新的写法 动态参数列表 ...
参数类型固定 参数的个数可以动态 0-n
使用起来类似与数组的使用 length index
int[]... x int[][] x
动态参数列表的方法 对应匹配的数组类型的方法不能构成重载(本质是一样)
动态列表的方法可以不传递参数 0 个 数组的方法必须传递
动态参数列表在方法的参数中只能存在一份 且放置在参数的末尾
利用类来描述现实生活中的事情
利用对象去具体的执行操作
类的内部成员 Person
1.方法---动态描述类的行为(做事情) eat
2.属性---静态描述类的特征(变量 存值) name
3.构造方法---用来创建当前类的对象(方法 很特殊)
4.程序块(代码块)---理解为就是一个方法(非常特殊的 无修饰符无参数无返回值无名字)
构造方法
1.作用: 只有一个 构建(构造)当前类的对象
2.写法: 权限修饰符 与类名一致的方法名 (参数列表) [抛出异常]{
一件事情 创建一个对象(当前类 Person)
返回对象;
}
3.用法: 通过 new 关键字调用
4.特点:
1.每一个类都有构造方法,若自己在类中没有定义,系统会默认提供一个无参数的构造方法
若在类中自己定义了构造方法,则默认无参数的构造方法即被覆盖
2.构造方法是否存在方法重载?----存在构造方法重载
5.每一个类都有构造方法
若不定义 系统会默认提供构造方法
为什么要定义构造方法? 什么时候需要设计构造方法?
在创建对象的同时 想要一并做一些事情 默认提供的构造方法是不会做的
这个时候我们可以自己定义构造方法(无参数的构造方法内做事 也可以定义带参数的)
类的第四个成员---程序块(代码块)
1.作用: 跟普通方法一样 做事情的
2.写法: 可以认为程序块是一个 没有修饰符 没有参数 没有返回值 没有名字的特殊方法
{
}
3.用法: 块也需要调用才能执行 我们自己调用不到(没有名字)
每一次我们调用构造方法之前 系统会帮我们自动的调用一次程序块 让他执行一遍
4.特点: 没有什么重载的概念(压根连名字都没有 连参数都没有)
但是可以在类中定义 多个程序块
5.块可以在里面写一些程序 我想要在创建对象之前执行
构造方法中 属性与变量重名 必须需要一个代替词 代替对象
版权声明: 本文为 InfoQ 作者【魏铁锤】的原创文章。
原文链接:【http://xie.infoq.cn/article/51f18c07693c11f50f44ddf96】。文章转载请联系作者。
评论